Pagini recente » Cod sursa (job #1426047) | Cod sursa (job #2722956) | Cod sursa (job #2880206) | Cod sursa (job #1702245) | Cod sursa (job #2417436)
#include<bits/stdc++.h>
using namespace std;
int n,a,b,c,v[10000010],cif[20],aux[10000010],i,ma,e,mi=INT_MAX;
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]=1LL*(1LL*a*v[i-1]+b)%c;
ma=max(ma,v[i]);
mi=min(mi,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;
}