読者です 読者をやめる 読者になる 読者になる

マトリョーシカ的日常

ワクワクばらまく明日のブログ。

ひだりに出るものはいない(SRM314 div2 level2)

topcoder

へいたいの左。

http://instagram.com/p/XhP5JbBBF-/


あっという間にできました。うそです。ベクトルの挿入を思いついたのは一日後でした。
身長がばらばらの兵隊どもが一列にならんだ。そして解散した。
みな、自分より高いやつが左に何人いたかしか覚えていない。
元の並びを返せ。


TopCoder Statistics - Problem Statement


 

#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;
class StandInLine{
public:
    vector <int> reconstruct(vector <int> le){
        /*
        for(int k=0;k<le.size();k++){
            cout<<le[k]<<" ";
        }
         */
        //cout<<endl;
        vector <int> result;
        for(int i=le.size()-1;i>=0;i--){
            int b=le[i];
            result.insert(result.begin()+b,1,i+1);
        //    cout<<i<<" : "<<b<<" ";
        /*
         for(int j=0;j<result.size();j++){
                cout<<result[j]<<" ";
            }
            cout<<endl;
        */
         }
        return result;
    }
};


int main(){
    StandInLine ob1;
    int a1=1000,b1=513;
    int a[] ={6, 1, 1, 1, 2, 0, 0};
    vector <int> tx(a,a+(sizeof(a)/sizeof(a[0])));
    ob1.reconstruct(tx);
    return 0;
  • result.insert(result.begin()+b,1,i+1);

ベクトルを挿入しますぜ。