Cod sursa(job #3290733)

Utilizator Paunescu_Stefan_Vladfdsasdfdfs Paunescu_Stefan_Vlad Data 31 martie 2025 19:01:47
Problema Schi Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 100000
int schiori[N+1];
int ans[N+1];
int v[4*N];
int n,i,cn,j;
int query(int p){
  int pos=1;
  int size=cn/2;
  while(size>=1){
    v[pos]++;
    if(size-v[pos*2]-p>=0){
      pos=pos*2;
    }
    else{
      p=p-size+v[pos*2];
      pos=pos*2+1;
    }
    size=size/2;
  }
  v[pos]=1;
  return pos;
}
int main()
{
    FILE *fin; FILE *fout;
    fin=fopen("schi.in","r");
    fout=fopen("schi.out","w");
    fscanf(fin,"%d",&n);
    cn=pow(2,32-__builtin_clz(n));
    for(i=1;i<=n;i++){
      fscanf(fin,"%d",&schiori[i]);
    }
    for(i=n;i>=1;i--){
        ans[query(schiori[i])-cn+1]=i;
    }
    for(i=1;i<=n;i++){
      fprintf(fout,"%d\n",ans[i]);
    }
    fclose(fin);
    fclose(fout);
    return 0;
}