Cod sursa(job #1841972)

Utilizator bt.panteaPantea Beniamin bt.pantea Data 6 ianuarie 2017 13:06:44
Problema Radix Sort Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f ("radixsort.in");
ofstream g ("radixsort.out");

vector<int> v;

void RadixSort(vector<int> & v, int bit)
{
    vector<int> v0, v1;
    while (bit < 31)
    {
        v0.clear();
        v1.clear();
        for (int i = 0; i < v.size(); i++)
        {
            if ((v[i] & (1<<bit)))
                v1.push_back(v[i]);
            else v0.push_back(v[i]);
        }
        v.clear();
        for (int i = 0; i < v0.size(); i++)
            v.push_back(v0[i]);
        for (int i = 0; i < v1.size(); i++)
            v.push_back(v1[i]);
        bit++;
    }
}
int n, a, b, c;

int main()
{
    f>>n>>a>>b>>c;
    v.push_back(b);
    for (int i = 1; i < n; i++)
        v.push_back((a * v[i - 1] + b) % c);
    RadixSort(v, 0);
    for (int i = 0; i < n; i+=10)
        g<<v[i]<<' ';
    return 0;
}