Pagini recente » Cod sursa (job #1735664) | Cod sursa (job #1781925) | Cod sursa (job #1503952) | Cod sursa (job #1862092) | Cod sursa (job #1111533)
#include <iostream>
#include <fstream>
#include <cstring>
#define maxn 100000100
using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
int v[maxn],b[maxn],maxim;
void radixsort(int a[],int n)
{
int exp=1,i;
while(maxim/exp>0)
{
int buket[10]={ 0 };
memset(buket,0,sizeof(buket));
for(i=0;i<n;i++)
buket[ (a[i]/exp) % 10 ]++;
for(i=1;i<=9;i++)
buket[i]+=buket[i-1];
for(i=n-1;i>=0;i--)
b[ --buket[ (a[i]/exp) % 10 ] ] = a[i];
for(i=0;i<n;i++)
a[i]=b[i];
exp*=10;
}
}
int main()
{
int i,n,a,b,c;
in>>n>>a>>b>>c;
v[0]=b;
maxim=v[0];
for(i=1;i<n;i++)
{v[i]=(a*v[i-1]+b)%c;
if(v[i]>maxim)
maxim=v[i];
}
radixsort(v,n);
for(i=0;i<n;i+=10)
out<<v[i]<<" ";
return 0;
}