Pagini recente » Cod sursa (job #2558840) | Cod sursa (job #120945) | Cod sursa (job #1818591) | Cod sursa (job #838150) | Cod sursa (job #1146119)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;
vector<int> a;
int n, A, b, c;
void functie(int gr)
{
vector<int> lista[256];
for(int i = 0; i < n; i++)
lista[(a[i] >> 8*gr) & 255].push_back(a[i]);
a.clear();
for(int j = 0; j < 256; j++)
{
for(int w = 0; w < lista[j].size(); w++)
a.push_back(lista[j][w]);
lista[j].clear();
}
}
void citire()
{
scanf("%d%d%d%d", &n, &A, &b, &c);
a.push_back(b);
for(int i = 1; i < n; i++)
a.push_back((1ll*A*a.back()+b) % c);
}
int main()
{
freopen("radixsort.in", "r", stdin);
freopen("radixsort.out", "w", stdout);
citire();
for(int i = 0; i < 4; i++)
functie(i);
for(int i = 0; i < n; i+=10)
printf("%d ", a[i]);
printf("\n");
return 0;
}