Pagini recente » Cod sursa (job #2678494) | Cod sursa (job #266994) | Cod sursa (job #2211774) | Cod sursa (job #1641287) | Cod sursa (job #1955309)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout ("radixsort.out");
long long n,a,b,c,i,p;
int f[11],w[10000001];
unsigned long long v[10000001],maxim,nr;
int main ()
{
fin >> n >> a >> b >> c;
v[1] = b;
maxim = 1;
for (i=2; i<=n; i++)
{
p = a*v[i-1];
v[i] = (p+b)%c;
if (v[i] > maxim)
maxim *= 10;
}
nr = 1;
while (nr <= maxim)
{
for (i=0; i<=9; i++)
f[i] = 0;
for (i=1; i<=n; i++)
f[(v[i]/nr)%10]++;
for (i=1; i<=9; i++)
f[i] += f[i-1];
for (i=n; i>=1; i--)
{
w[f[(v[i]/nr)%10]] = v[i];
f[(v[i]/nr)%10]--;
}
for (i=1; i<=n; i++)
v[i] = w[i];
nr *= 10;
}
for (i=1; i<=n; i+=10)
fout << v[i] << " ";
return 0;
}