Pagini recente » Cod sursa (job #603567) | Cod sursa (job #2264233) | Cod sursa (job #2444045) | Cod sursa (job #1695128) | Cod sursa (job #3182548)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int n, i, iq, v[10000001], p10, p, a, b, c;
queue<int> q[10];
int main(){
fin >> n >> a >> b >> c;
v[1] = b;
for (i = 2; i <= n; i++)
{
v[i] = (1LL * a * v[i-1] + b) % c;
}
p10 = 1;
for (p = 1; p <= 9; p++)
{
for (i = 1; i <= n; i++)
{
c = v[i] / p10 % 10;
q[c].push(v[i]);
}
i = 0;
for (iq = 0; iq <= 9; iq++){
while(!q[iq].empty()){
i++;
v[i] = q[iq].front();
q[iq].pop();
}
}
p10 *= 10;
}
for (i = 1; i <= n; i+=10)
{
fout << v[i] << ' ';
}
return 0;
}