Pagini recente » Cod sursa (job #141737) | Profil dausyana | Monitorul de evaluare | Borderou de evaluare (job #1311704) | Cod sursa (job #2833812)
#include <bits/stdc++.h>
using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
int n,A,B,C;
vector<int>ant[15],act[15];
int main()
{
in >> n >> A >> B >> C;
ant[1].push_back(B);
for (int i = 1; i < n; i++)
{
int ela = (1ll * A * ant[1][i - 1] + B) % C;
ant[1].push_back(ela);
}
int p10 = 1;
while (ant[0].size() != n)
{
for (int j = 0; j <= 9; j++)
act[j].clear();
for (int j = 0; j <= 9; j++)
for (int i = 0; i < ant[j].size(); i++)
act[(ant[j][i] / p10) % 10].push_back(ant[j][i]);
p10 *= 10;
for (int j = 0; j <= 9; j++)
{
ant[j].clear();
for (int i = 0; i < act[j].size(); i++)
ant[j].push_back(act[j][i]);
}
}
for (int i = 0; i < n; i += 10)
out << act[0][i] << " ";
return 0;
}