题意: 解法: 对a[]从小到大排序, 显然最小的n个数一定不是答案,作为每一组的最小值. 然后贪心低从后往前选择,倒数第一个数作为某一组的最大值,倒数第二个数就可以作为这组的次大值计入答案, 倒数第三个数作为某一组的最大值,倒数第四个数作为这组的次大值计入答案, 之后同理. code: #include <bits/stdc++.h> #define int long long #define PI pair<int,int> using namespace std; const int maxm=2e6+5; int a[maxm]; int n; void solve(){ cin>>n; for(int i=1;i<=n*3;i++){ cin>>a[i]; } sort(a+1,a+1+n*3); int ans=0; for(int i=n*3-1,cnt=1;i>=1&&cnt<=n;i-=2,cnt++){ ans+=a[i]; } cout<<ans<<endl; } signed main(){ ios::sync_with_stdio(0); solve(); return 0; }