Pagini recente » Cod sursa (job #478808) | Cod sursa (job #420386) | Cod sursa (job #2192707)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
long long n,a,b,c;
int elem[10000001];
vector<int>bucket[10];
int main()
{
fin>>n>>a>>b>>c;
elem[0]=b;
for(int i=1;i<n;i++)
{
long long t=((a*elem[i-1]+b)%c);
elem[i]=t;
}
long long t=1;
long long q=10;
for(int p=1;p<=9;p++)
{
for(int i=0;i<n;i++)
{
if(elem[i]/t==0)
{
bucket[0].push_back(elem[i]);
continue;
}
bucket[(elem[i]/t)%q].push_back(elem[i]);
}
int cou=0;
for(int j=0;j<=9;j++)
{
for(int g=0;g<bucket[j].size();g++)
{
elem[cou]=bucket[j][g];
cou++;
}
bucket[j].clear();
}
t*=10;
}
int pos=0;
while(pos<n)
{
fout<<elem[pos]<<" ";
pos+=10;
}
return 0;
}