结果:1个AC,4个WA,5个TLE。
不会动态规划。
思路:每两趟为一组。
第一趟:选最快的两个人去,最快的一个人回。
第二趟:选最慢的两个人去,最快的一个人回。
以此类推。
#include<bits/stdc++.h>
using namespace std;
int n,t,c,i;
vector<int> a,b;
int main(){
scanf("%d",&n);
for(int j = 0;j < n;j++){
scanf("%d",&c);
a.push_back(c);
}
while(a.size() > 3){
sort(&a[0],&a[a.size()]);
t += a[1];
b.push_back(a[1]);
b.push_back(a[0]);
a.erase(a.begin());
a.erase(a.begin());
sort(&b[0],&b[b.size()]);
t += b[0];
a.push_back(b[0]);
b.erase(b.begin());
sort(&a[0],&a[a.size()]);
t += a.back();
b.push_back(a.back());
a.pop_back();
b.push_back(a.back());
a.pop_back();
sort(&b[0],&b[b.size()]);
t += b[0];
a.push_back(b[0]);
b.erase(b.begin());
}
if(a.size() == 3) t += a[0]+a[1]+a[2];
else t += a[1];
printf("%d",t);
return 0;
}
谢谢各位大佬!