Pagini recente » Cod sursa (job #1644874) | Monitorul de evaluare | Solutia problemei shoturi | Cod sursa (job #2469876) | Cod sursa (job #1799232)
#include <fstream>
using namespace std;
int v[10000002];
int cou[2000];
int tem[10000002];
int a,b,c,n,q;
int main()
{
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
fin>>n>>a>>b>>c;
v[0]=b;
for(int i=1;i<n;i++){
v[i] = (1LL*a*v[i-1]+b)%c;
}
int l=1;
for(int i=1;i<=10;i++)
{
for(int j=0;j<n;j++)
{
cou[v[j]/l%10+1]++;
}
for(int j=1;j<=9;j++)
{
cou[j]+=cou[j-1];
}
for(int j=0;j<n;j++)
{
int x=cou[v[j]/l%10];
tem[x]=v[j];
cou[v[j]/l%10]++;
}
for(int j=0;j<=n;j++)
{
v[j]=tem[j];
}
l*=10;
for(int i=0;i<=9;i++)
{
cou[i]=0;
}
}
for(int i=0;i<n;i+=10)
{
fout<<v[i]<<" ";
}
return 0;
}