Pagini recente » Cod sursa (job #2787054) | Cod sursa (job #2125334)
#include<fstream>
#include<deque>
using namespace std;
int main() {
ifstream in("radixsort.in");
int N,A,B,C;
in >> N >> A >> B >> C;
long long *v = new long long[N];
v[0] = B;
for (int i = 1;i < N;++i)
v[i] = ((A * v[i - 1]) % C + B) % C;
int tiz = 1;
for ( ; C ; C/=10, tiz *= 10) {
deque<int> q[10];
for (int i = 0;i < N;++i)
q[(v[i] % (tiz * 10)) / tiz].push_back(v[i]);
int k = 0;
for (int i = 0;i <= 9;++i)
while (!q[i].empty()) {
v[k] = q[i].front();
q[i].pop_front();
k++;
}
}
ofstream out("radixsort.out");
for (int i = 0;i < N;i+=10)
out << v[i] << " ";
}