ZYB's Biology

题目: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好坑啊,数组必须定义为最大值。。

之前不知道,提交一直说编译有错。

原文地址:https://www.cnblogs.com/fengyanlover/p/5022386.html