Cod sursa(job #1401911)

Utilizator irimiecIrimie Catalin irimiec Data 26 martie 2015 10:48:19
Problema Radix Sort Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.18 kb
#include <bits/stdc++.h>

using namespace std;

#define     mp              make_pair
#define     fs              first
#define     sc              second
#define     pob             pop_back
#define     pub             push_back
#define     eps             1E-7
#define     sz(a)           a.size()
#define     count_one       __builtin_popcount;
#define     count_onell     __builtin_popcountll;
#define     fastIO          ios_base::sync_with_stdio(false)
#define     PI              (acos(-1.0))
#define     linf            (1LL<<62)//>4e18
#define     inf             (0x7f7f7f7f)//>2e9

#define MAXN 10000002

int n, a, b, c;
int v[MAXN];

int comp (const void *a, const void *b) {
    return *(int *)a - *(int *)b;
}

void read() {
    #ifndef ONLINE_JUDGE
    assert(freopen("radixsort.in", "r", stdin));
    assert(freopen("radixsort.out", "w", stdout));
    #endif

	assert(scanf("%d%d%d%d", &n, &a, &b, &c));
	v[1] = b;
	for(int i = 2; i <= n; ++i) {
        v[i] = (1LL * a * v[i-1] + b) % c;
	}

    qsort(v + 1, n, sizeof(int), comp);
    for(int i = 1; i <= n; i += 10)
        printf("%d ", v[i]);
}

int main() {
	read();

    return 0;
}