Pagini recente » Cod sursa (job #852728) | Cod sursa (job #1300724) | Cod sursa (job #2270271) | Cod sursa (job #3284839) | Cod sursa (job #1517200)
#include <fstream>
#include <vector>
using namespace std;
int n;
int a;
int b;
int c;
fstream fout;
void CreateList(vector<int> &numbers)
{
numbers.push_back(b);
for (int k = 1;k < n;k += 1)
{
numbers.push_back((a * numbers.back() + b) % c);
}
}
void Sort(vector<int> &numbers,int level,int &counter)
{
if (level == 4)
{
for (int a = 0;a < numbers.size();a += 1,counter += 1)
{
if ((counter % 10) == 0)
{
fout << numbers[a] << " ";
}
}
return;
}
vector<int> mininumbers[256];
for (int a = 0;a < numbers.size();a += 1)
{
int value = numbers.at(a);
mininumbers[(value >> ((3 - level) << 3)) & 0XFF].push_back(value);
}
for (int a = 0;a < 256;a += 1)
{
if (mininumbers[a].size() > 0)
{
Sort(mininumbers[a],level + 1,counter);
}
}
}
int main(void)
{
fstream fin("radixsort.in",ios::in);
fout.open("radixsort.out",ios::out);
fin >> n >> a >> b >> c;
vector<int> numbers;
CreateList(numbers);
int counter = 0;
Sort(numbers,0,counter);
fin.close();
fout.close();
return 0;
}