//把最大单独放,然后第二大的和最小的放一起,第三大的和第二小的放一起 //由此类推,求最大值,即为盒的最小值 #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<string> #include<cstdlib> #include<vector> #include<stack> #include<map> using namespace std; typedef long long ll; const int MAXN=100010; const int INF=1000001; int cow[MAXN]; int main() { int n,k; scanf("%d%d",&n,&k); for(int i=0;i<n;i++) scanf("%d",&cow[i]); int minn=cow[n-1]; for(int i=0;i<n-k;i++) minn=max(minn,cow[i]+cow[(n-k)*2-i-1]); printf("%d\n",minn); return 0; }
原文:http://www.cnblogs.com/atmacmer/p/5216548.html