Pagini recente »
Rating 6A Constantin Matei (Matei_Constantin)
|
Atașamentele paginii Clasament 2024-08-26-clasa-6-tema-4
|
Profil PetruApostol
|
Monitorul de evaluare
|
Cod sursă (job #784262)
Cod sursă (job
#784262)
#include <stdio.h>
#include <stdlib.h>
int v[100000],b[100000];
int main() {
FILE *fin,*fout;
int n,k,t,p;
fin=fopen("arbperm.in","r");
fscanf(fin,"%d%d",&n,&k);
for(int i=0; i<n; i++) {
fscanf(fin,"%d",&v[i]);
}
fclose(fin);
t=k;
p=n;
while(t>0) {
int i=0;
while(v[i]!=p) {
t+=(v[i]<p);
i++;
}
b[n-p]=t%p;
p--;
t/=(p+1);
}
t=0;
for(int i=0; i<n; i++) {
if(v[i]<=p) {
v[t++]=v[i];
}
}
p++;
while(p<=n) {
for(int i=p-2; i>=b[n-p]; i--) {
v[i+1]=v[i];
}
p++;
v[b[n-p+1]]=p-1;
}
fout=fopen("arbperm.out","w");
for(int i=0; i<n; i++) {
fprintf(fout,"%d ",v[i]);
}
fclose(fout);
return 0;
}