Pagini recente » Cod sursa (job #1157525) | Cod sursa (job #2887390) | Cod sursa (job #1645329) | Cod sursa (job #118411) | Cod sursa (job #2945036)
#include <fstream>
using namespace std;
#define Nmax 10000000
long long v[Nmax];
void radixSort(int left, int right, int bitNumber)
{
if(left > right || bitNumber <= -1)
{
return;
}
int i, j;
long long aux;
for(i = left, j = left; i <= right; i++)
{
if((v[i] & (1 << bitNumber)) == 0)
{
aux = v[j];
v[j] = v[i];
v[i] = aux;
j++;
}
}
radixSort(left, j - 1, bitNumber - 1);
radixSort(j, right, bitNumber - 1);
}
int main()
{
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int n, i, a, b, c;
fin >> n >> a >> b >> c;
v[0] = b;
for(i = 1; i < n; i++)
{
v[i] = ((long long)a * v[i - 1] + b) % c;
}
radixSort(0, n - 1, 63);
for(i = 0; i < n; i += 10)
{
fout << v[i] << " ";
}
return 0;
}