



我自己写的代码如下:
#include <cstdio>
#include <iostream>
#include <vector>
using namespace std;
int main(void){
int t;
scanf("%d", &t);
for (int i = 0; i < t; ++i)
{int place;
scanf("%d", &place);
vector<int> ivec;
int money;
for (int j = 0; j < place - 1; ++j) {
scanf("%d", &money);
ivec.push_back(money);
}
int kids;
scanf("%d", &kids);
int wtplace;
vector<int> iwt;
for (int k = 0; k < kids; ++k)
{scanf("%d", &wtplace);iwt.push_back(wtplace);}
int result = 1000;
for (int stop = 0; stop < place - 1; ++stop) {
vector<int> rivec(ivec);
vector<int>::iterator iter = rivec.begin() + stop;
rivec.insert(iter, 0);
for (int ix = stop; ix < place - 1; ++ix) {
rivec[ix + 1] += rivec[ix];
}
for (int ix = stop; ix > 0; --ix) {
rivec[ix - 1] += rivec[ix];
}
int cost = 0;
for (int i = 0; i < kids; ++i) {
cost += rivec[iwt[i]];
}
if (cost < result)result = cost;
}
printf("Case #%d: %d\n", i + 1, result);
}
return 0;
}百度排版真纠结,。。这题提交上去wa不知道是不是我哪儿理解错了,还是代码问题,找不到,纠结。。。