Pagini recente » Cod sursa (job #3282348) | Cod sursa (job #23531) | Cod sursa (job #2827087) | Cod sursa (job #3289861) | Cod sursa (job #1104259)
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=10000005;
const int MAXEL=(1<<30)+5;
int n,a,b,c,k;
int v[MAXN],u[MAXEL];
void read()
{
int i;
freopen("radixsort.in","r",stdin);
scanf("%d%d%d%d",&n,&a,&b,&c);
v[1]=b;
for (i=2; i<=n; ++i)
v[i]=(a*v[i-1]+b)%c;
}
void write()
{
int i;
freopen("radixsort.out","w",stdout);
for (i=1; i<=n; i+=10)
printf("%d ",v[i]);
printf("\n");
}
void counting_sort()
{
int i,j,poz=1;
for (i=1; i<=n; ++i)
++u[v[i]];
for (i=1; i<MAXEL && poz<=n; ++i)
{
if (u[i])
{
for (j=1; j<=u[i]; ++j)
{
v[poz++]=i;
}
}
}
}
int main()
{
read();
counting_sort();
write();
return 0;
}