用ac的代码对照了N组数据了都一样一交就wa?
#include<iostream>
#include<algorithm>
const int N = 10000;
using namespace std;
int h[N],baby[N][N],b[N],ans = 0;
void bfs(int xx){
if(xx>4)return;
int x = h[xx];
if(x==1){
ans+=baby[xx][1];
return;
}
int idx = 0;
int ba[N];
for(int i = 1;i<=x;i++)ba[i] = baby[xx][i];
sort(ba+1,ba+x+1,greater<int>());
for(int i = 1;i<=x;i++){
if(!idx)b[idx++] = ba[i];
else {
b[idx++] = ba[i];
sort(b,b+2);
ans+=b[0];
b[0] =b[1] - b[0];
if(b[0]==0)idx-=2;
else idx--;
}
}if(idx) ans+=b[0];
}
int main(){
for(int i = 1; i <= 4;i++)cin>>h[i];
for(int i = 1;i <= 4;i++)
for (int j = 1; j <= h[i]; j ++ )
cin>>baby[i][j];
for(int i = 1; i <= 4;i++)bfs(i);
cout<<ans<<endl;
return 0;
}