Pagini recente » Cod sursa (job #725400) | Cod sursa (job #2727223) | Cod sursa (job #2411881) | Cod sursa (job #367833) | Cod sursa (job #2388760)
#include <fstream>
#include <vector>
#define pb push_back
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int n, a, b, c, cif, nr, maxim, v[10000005];
long long p;
vector<int> A[10];
int main()
{
int i, j;
fin >> n >> a >> b >> c;
v[1] = b;
for (i=2;i<=n;i++)
{
v[i] = (1ll*a*v[i-1]+b)%c;
if (v[i] > maxim)
maxim = v[i];
}
for (p=10;p/10<=maxim;p*=10)
{
for (i=0;i<10;i++)
A[i].clear();
for (i=1;i<=n;i++)
{
cif = (v[i]%p)/(p/10);
A[cif].pb(v[i]);
}
nr = 0;
for (i=0;i<=9;i++)
for (j=0;j<A[i].size();j++)
v[++nr] = A[i][j];
}
for (i=1;i<=n;i+=10)
fout << v[i] << ' ';
return 0;
}