Pagini recente » Cod sursa (job #2368776) | Cod sursa (job #2711142) | Cod sursa (job #762582) | Cod sursa (job #1695663) | Cod sursa (job #1754998)
#include <fstream>
#include <queue>
int n;
int arr[10000000];
std::queue <int> zero;
std::queue <int> one;
void
go()
{
int index;
int j;
int bit;
int temp;
for (index = 0; index < 31; ++index)
{
bit = 1 << index;
for (j = 0; j < n; ++j)
{
if ( bit & arr[j] )
{
one.push(arr[j]);
}
else
{
zero.push(arr[j]);
}
}
temp = zero.size();
for (j = 0; j < temp; ++j)
{
arr[j] = zero.front();
zero.pop();
}
for (; j < n; ++j)
{
arr[j] = one.front();
one.pop();
}
}
}
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;
}