Cod sursa(job #2057978)

Utilizator neth------ neth Data 4 noiembrie 2017 22:53:05
Problema Radix Sort Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <bits/stdc++.h>
using namespace std;
ofstream fo("radixsort.out");
#define R(i,x,y,z)for(int i=x;i!=y;i+=z)
int v[10000000],w[10000000],x[4],n,a,c;
main(){
ifstream("radixsort.in")>>n>>a>>v[0]>>c;
R(i,1,n,1)v[i]=(1LL*a*v[i-1]+v[0])%c;
R(b,0,32,2){
memset(x,0,sizeof x);
R(i,0,n,1)++x[v[i]>>b&3];
R(i,1,4,1)x[i]+=x[i-1];
R(i,n-1,-1,-1)w[--x[v[i]>>b&3]]=v[i];
swap(v,w);}
R(i,0,n,10) fo<<v[i]<<' ';
}