题目:http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=654&pid=1001
#include<iostream> #include<vector> using namespace std; #define MAX1 5 #define MAX2 50000 int main() { int T,N,i,j,C[MAX1][MAX2]; cin>>T; for(j=0; j<T; j++) { cin>>N; vector<int> v; int a[MAX2],b[MAX2],c[MAX2]; cin>>a[0]; for(i=1; i<N; i++) { cin>>a[i]; b[i-1]=a[i]-a[i-1]; //差值 } for(i=1; i<=N; i++) v.push_back(i); int t; for(i=N-2; i>=0; i--) { t=v.size()-b[i]-1; C[j][i+1]=v[t]; v.erase(v.begin()+t); } C[j][0]=v[0]; } for(j=0; j<T; j++) { for(i=0; i<N; i++) cout<<C[j][i]<<" "; cout<<endl; } return 0; }
只想说,BC好坑啊,数组必须定义为最大值。。
之前不知道,提交一直说编译有错。