Cod sursă (job #294400)

Utilizator avatar adriannicolae Adrian Nicolae adriannicolae IP ascuns
Problemă Specsort (lot liceu) Compilator cpp | 0,56 kb
Rundă Arhiva de probleme Status evaluat
Dată 19 mar. 2017 20:17:46 Scor 100
#include <stdio.h>
#define MAXN 50000
int v[MAXN], aux[MAXN];
int main(){
    int n, i, j, k;
    FILE *fin, *fout;
    fin=fopen("specsort.in", "r");
    fout=fopen("specsort.out", "w");
    fscanf(fin, "%d", &n);
    for(i=0;i<n;++i) fscanf(fin,"%d",&v[i]);
    for(i=0;(1<<i)<=n;++i){
        for(j=k=0;j<n;++j) if(~v[j]&(1<<i)) aux[k++]=v[j];
        for(j=0;j<n;++j) if(v[j]&(1<<i)) aux[k++]=v[j];
        for(j=0;j<n-1;++j) fprintf(fout,"%d ",aux[j]),v[j]=aux[j];
        fprintf(fout,"%d\n",aux[n-1]);
        v[n-1]=aux[n-1];
    }
    return 0;
}