Cod sursa(job #1982662)

Utilizator rebecca0312Andrei Rebecca rebecca0312 Data 19 mai 2017 20:51:59
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<cstdio>
using namespace std;
const int NMAX=10000005;
int v[NMAX],aux[NMAX],n;
bool sortare(long long p){
    int i,cf,ind=0;
    bool ok=0;
    for(cf=0;cf<10;cf++)
        for(i=1;i<=n;i++){
            if(v[i]/p%10==cf)
                aux[++ind]=v[i];
            if(v[i]/p>0)
                ok=1;
        }
    for(i=1;i<=n;i++)
        v[i]=aux[i];
    return ok;
}
void radix_sort(long long p){
    bool ok=sortare(p);
    if(ok==0)
        return ;
    p*=10;
    radix_sort(p);
}
int main(){
    freopen("radixsort.in","r",stdin);
    freopen("radixsort.out","w",stdout);
    int a,b,c;
    scanf("%d%d%d%d", &n, &a, &b, &c);
    v[1]=b;
    for(int i=2;i<=n;i++)
        v[i]=(a*v[i-1]+b)%c;
    radix_sort(1);
    for(int i=1;i<=n;i+=10)
        printf("%d ", v[i]);
    return 0;
}