Cod sursa(job #1029300)

Utilizator mazaandreiAndrei Mazareanu mazaandrei Data 15 noiembrie 2013 12:38:21
Problema Schi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <map>
using namespace std;
ifstream in("schi.in"); ofstream out("schi.out");
int sol[30001],a[30001],n,nr;
map <int, int> m;
int main(){
    in>>n; //Sol evidenta, mapuri
    for(int i=1;i<=n;++i) {m[i]=1;in>>a[i];}
    for(int i=n,j=1;i>=1;--i){
        nr=0;
        map<int,int> :: iterator it2;
        for(map<int,int> :: iterator it=m.begin(); nr!=a[i]; ++it){
            if(it==m.end())
                it=m.begin();
            ++nr;
            j=(*it).first; it2=it;
        }
        sol[j]=i;
        m[j]=0;
        m.erase(it2);
    }
    for(int i=1;i<=n;++i) out<<sol[i]<<'\n';
    out.close();
    return 0;
}