Cod sursa(job #1910329)

Utilizator tudoras8tudoras8 tudoras8 Data 7 martie 2017 16:28:20
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int n, a, b, c;
vector<int> v;

void insertionSort(int digit) {
    int mask = 1 << digit;
    for (int i = 1; i < n; i++) {
        int j = i - 1;
        while (j >= 0 && (v[j] & mask) > (v[j + 1] & mask)) {
            swap(v[j], v[j + 1]);
            j--;
        }
    }
}

int main(int argc, const char * argv[]) {
    ifstream cin("radixsort.in");
    ofstream cout("radixsort.out");
    
    cin >> n >> a >> b >> c;
    v.push_back(b);
    for (int i = 1; i < n; i++) {
        int x = (a * v[i - 1] + b) % c;
        v.push_back(x);
    }
    
    for (int i = 0; i < 31; i++) {
        insertionSort(i);
    }
    for (int i = 0; i < n; i += 10) {
        cout << v[i] << " ";
    }
    
    
    return 0;
}