Cod sursa(job #1146750)

Utilizator toncuvasileToncu Vasile toncuvasile Data 19 martie 2014 11:29:54
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb

#include<iostream>
#include<queue>
#include<ctime>
using namespace std;

int main(){
   queue<int>Q[10];
   srand(time(NULL));
   
   freopen("radixsort.in","r",stdin);
   freopen("radixsort.out","w",stdout);
   
   int A[1000],n,a,b,c;
   cin>>n>>a>>b>>c;
   A[1]=b;
   for(int i=2;i<=n;i++) A[i]=(a*A[i-1]+b)%c;
   n++;
   
   for(int p=1;p<=10000000;p*=10){
      for(int i=0;i<n;i++){
         Q[(A[i]/p)%10].push(A[i]);
      }
      int x=0;
      for(int k=0;k<10;k++){
         while(!Q[k].empty()){
            A[x++]=Q[k].front();
            Q[k].pop();
         }
      }
   }
   
   for(int i=1;i<n;i=i+10) cout<<A<<" ";   
}