Pagini recente » Cod sursa (job #1032120) | Cod sursa (job #1056683) | Cod sursa (job #256426) | Cod sursa (job #137939) | Cod sursa (job #1111247)
#include<cstdio>
#include<algorithm>
#define Ser 10000005
#define py (1<<8)-1
using namespace std;
long long a,b,c;
long long n,i,in[py],bi[Ser],v[Ser];
void radixsort(long long a[Ser], long long n)
{
long long mx= a[0], lv = 256;
for (i=1;i<n;++i)
if (a[i] > mx)
mx=a[i];
for(i=0;i<=py;i++)in[i]=0;
while (mx/lv > 0)
{
for (i = 0; i < n; i++)
in[(a[i]/lv)%256]++;
for (i = 1; i < 256; i++)
in[i] += in[i - 1];
for (i = n - 1; i >= 0; i--)
bi[--in[(a[i] / lv) % 256]] = a[i];
for (i = 0; i < n; i++)
a[i] = bi[i];
lv *= 256;
}
}
int main()
{ freopen ("radixsort.in","r",stdin);
freopen("radixsort.out","w",stdout);
scanf("%lld%lld%lld%lld", &n,&a,&b,&c);
v[0]=b;
for (i =1; i < n; i++)
v[i] = (a * v[i-1]+b) %c;
sort(v, v+n);
radixsort(v, n);
for (i = 0; i < n; i+=10)
printf("%lld ", v[i]);
return 0;
}