Cod sursa(job #1398260)

Utilizator diana-t95FMI Tudoreanu Diana Elena diana-t95 Data 24 martie 2015 08:31:57
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include<fstream>
using namespace std;
ofstream g("radixsort.out");
#define maxn 10000002
#define mod 2
#define maxp 24
#define baza 1<<2
int fr[baza];
int nr[maxn], old[maxn], n;
void radixsort()
{
    int p, cv, i;
    for (p=0;p<=maxp;p+=mod)
    {
        for (i=1;i<=n;i++)
        {
            fr[(nr[i]>>p)% baza]++;
            old[i]=nr[i];
        }
        for (i=1;i<baza;i++)
            fr[i]+=fr[i-1];
        for (i=n;i>=1;i--)
        {
            nr[fr[(old[i]>>p)&(baza-1)]]=old[i];
            fr[(old[i]>>p)&(baza-1)]--;
        }
        for (i=0;i<baza;i++) fr[i]=0;
    }
}
int main()
{
    ifstream f("radixsort.in");
    int i, cv, a, b, c;
    f>>n>>a>>b>>c;
    nr[1]=b;
    for (i=2;i<=n;i++) nr[i]=(a*nr[i-1]+b)%c;
    radixsort();
    for (i=1;i<=n;i+=1)
        g<<nr[i]<<' ';
    g<<'\n';
}