Pagini recente » Cod sursa (job #1214538) | Cod sursa (job #2740755) | Cod sursa (job #276677) | Cod sursa (job #2675396) | Cod sursa (job #2759513)
#include <fstream>
using namespace std;
ifstream in("schi.in");
ofstream out("schi.out");
const int N = 30001;
int v[N], ans[N], t[1 << 17], x;
void update(int p, int l, int r, int poz, int el){
t[p]++;
if(l == r){
ans[l] = el;
return;
}
int m = (l + r) / 2, fl = p + p, fr = fl + 1;
if(poz <= m - l + 1 - t[fl]){
update(fl, l, m, poz, el);
}
else{
update(fr, m + 1, r, poz - (m - l + 1 - t[fl]), el);
}
}
int main()
{
int n;
in >> n;
for(int i = 1; i <= n; i++){
in >> v[i];
}
for(int i = n; i > 0; i--){
update(1, 1, n, v[i], i);
}
for(int i = 1; i <= n; i++){
out << ans[i] << '\n';
}
return 0;
}