Cod sursă (job #243984)

Utilizator avatar Robert Popovici Robert Robert IP ascuns
Problemă Specsort (lot liceu) Compilator cpp | 0.62 kb
Rundă Arhiva de probleme Status evaluat
Dată 17 iul. 2016 22:15:05 Scor 100
#include <cstdio>
#include <cstring>
#define MAXN 50000
int v[MAXN+1],vec[MAXN+1];
int main(){
   FILE*fi,*fout;
   int i,j,n,m;
   fi=fopen("specsort.in" ,"r");
   fout=fopen("specsort.out" ,"w");
   fscanf(fi,"%d" ,&n);
   for(i=1;i<=n;i++)
     fscanf(fi,"%d" ,&v[i]);
   for(i=0;(1<<i)<=n;i++){
      m=0;
      for(j=1;j<=n;j++)
        if((v[j]&(1<<i))==0)
           vec[++m]=v[j];
      for(j=1;j<=n;j++)
        if((v[j]&(1<<i))>0)
           vec[++m]=v[j];
      for(j=1;j<=n;j++){
          v[j]=vec[j];
          fprintf(fout,"%d " ,v[j]);
      }
      fprintf(fout,"\n");
   }
   fclose(fi);
   fclose(fout);
   return 0;
}