Pagini recente » Rating Antal Simona (AntalSimona) | Cod sursa (job #763071) | Cod sursa (job #1165469) | Cod sursa (job #834779) | Cod sursa (job #1755003)
#include <fstream>
#include <queue>
int n;
int arr[10000000];
int zero[10000000];
int one[10000000];
void
go()
{
int index;
int j;
int bit;
int iz;
int io;
for (index = 0; index < 31; ++index)
{
bit = 1 << index;
iz = 0;
io = 0;
for (j = 0; j < n; ++j)
{
if ( bit & arr[j] )
{
one[io++] = arr[j];
}
else
{
zero[iz++] = arr[j];
}
}
for (j = 0; j < iz; ++j)
{
arr[j] = zero[j];
}
for (; j < n; ++j)
{
arr[j] = one[j - iz];
}
}
}
int main()
{
int index;
long long a;
long long b;
long long c;
std::ifstream mama("radixsort.in");
std::ofstream tata("radixsort.out");
mama >> n;
mama >> a >> b >> c;
arr[0] = b;
for (index = 1; index < n; ++index)
{
arr[index] = (a * arr[index - 1] + b) % c;
}
go();
for (index = 0; index < n; index += 10)
{
tata << arr[index] << ' ';
}
return 0;
}