由题意得出最小的结果就是最后的结果
所以只要用最小的乘以最大的再相加,就是ans(不开long long见祖宗)
#include<cstdio> #include<algorithm> using namespace std; long long a[10000],b[10000]; int main() { long long n; scanf("%lld",&n); for (int i=1;i<=n;i++) scanf("%lld",&a[i]); for (int i=1;i<=n;i++) scanf("%lld",&b[i]); sort(a+1,a+1+n); sort(b+1,b+1+n); long long ans=0; for (int i=1;i<=n;i++) ans+=a[i]*b[n-i+1]; printf("%lld\n",ans); }
原文:https://www.cnblogs.com/nibabadeboke/p/11358204.html