Cod sursa(job #2641458)
| Utilizator | Data | 11 august 2020 14:55:25 | |
|---|---|---|---|
| Problema | Radix Sort | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
long long a,b,c;
int A,B,n,v[10000010],x0[10000010],x1[10000010];
int main(){
f>>n>>a>>b>>c;
v[1]=b;
for(int i=2;i<=n;i++)
v[i]=(a*(long long)v[i-1]+b)%c;
for(int j=0;j<31;j++){
A=B=0;
for(int i=1;i<=n;i++)
if(v[i]&(1<<j))
x1[++A]=v[i];
else
x0[++B]=v[i];
for(int i=1;i<=B;i++)
v[i]=x0[i];
for(int i=B+1;i<=n;i++)
v[i]=x1[i-B];
}
for(int i=1;i<=n;i+=10)
g<<v[i]<<' ';
}
