Pagini recente » Cod sursa (job #2310751) | Cod sursa (job #677376) | Cod sursa (job #2623098) | Cod sursa (job #2887780) | Cod sursa (job #1142352)
#include <cstdio>
#include <vector>
#include <algorithm>
#define val first
#define poz second
#define pb push_back
#define Nmax 500010
using namespace std;
int i,n,a,b,c,Max;
long long v[Nmax];
vector <int> vec[10];
void radix(long long p)
{
int i,k,j;
for(i=1;i<=n;++i)
vec[v[i]/p%10].pb(v[i]);
k=0;
for(i=0;i<=9;++i)
{ for(j=0;j<vec[i].size();++j)
v[++k]=vec[i][j];
vec[i].clear();
}
if(p*10<=Max) radix(p*10);
else{
for(i=1;i<=n;i+=10) printf("%lld ",v[i]);
printf("\n");
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
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;
if(v[i]>Max) Max=v[i];
}
radix(1);
return 0;
}