Pagini recente » Cod sursa (job #1346789) | Cod sursa (job #586948) | Cod sursa (job #374024) | Cod sursa (job #2893568) | Cod sursa (job #2417433)
#include<bits/stdc++.h>
using namespace std;
int n,a,b,c,v[10000010],cif[20],aux[10000010],i,ma,e;
int main()
{
ifstream cin ("radixsort.in");
ofstream cout ("radixsort.out");
cin>>n>>a>>b>>c;
v[1]=b;
ma=b;
for(i=2; i<=n; ++i)
{
v[i]=(a*v[i-1]+b)%c;
ma=max(ma,v[i]);
}
e=1;
while(ma/e>0)
{
for(i=0; i<=10; ++i)cif[i]=0;
for(i=1; i<=n; ++i)cif[(v[i]/e)%10]++;
for(i=1; i<=9; ++i)cif[i]+=cif[i-1];
for(i=n; i>=1; --i)
{
aux[cif[(v[i]/e)%10]]=v[i];
cif[(v[i]/e)%10]--;
}
for(i=1; i<=n; ++i)v[i]=aux[i];
e*=10;
}
for(i=1; i<=n; i+=10)cout<<v[i]<<" ";
return 0;
}