Pagini recente » Cod sursa (job #924288) | Cod sursa (job #1797663) | Cod sursa (job #613281) | Cod sursa (job #2156718) | Cod sursa (job #1527711)
#include<cstdio>
#include<vector>
using namespace std;
vector<int> s[10];
int v[10000002],n,a,b,c,i,j,k,p,nr;
int main()
{
freopen("radixsort.in","r",stdin);
freopen("radixsort.out","w",stdout);
scanf("%d%d%d%d",&n,&a,&b,&c);
v[1]=b;
for(i=2;i<=n;i++)
{
v[i]=(a*v[i-1]+b)%c;
}
p=1;
for(i=1;i<=12;i++,p*=10)
{
for(k=0;k<=9;k++)
{
s[k].clear();
}
for(j=1;j<=n;j++)
{
s[(v[j]/p)%10].push_back(v[j]);
}
nr=0;
for(k=0;k<=9;k++)
{
for(vector<int>::iterator it=s[k].begin();it!=s[k].end();it++)
{
v[++nr]=(*it);
}
}
}
for(i=1;i<=n;i+=10)
{
printf("%d ",v[i]);
}
return 0;
}