Pagini recente » Cod sursa (job #2346894) | Cod sursa (job #2762098) | Cod sursa (job #3219760) | Cod sursa (job #2411410) | Cod sursa (job #1251136)
#include<fstream>
#include<vector>
#define nx 100000007
#define baza 10
using namespace std;
int n,a,b,c,i,j,k,nr[nx];
long long m,d;
vector<int>v[11];
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int main()
{
fin>>n>>a>>b>>c;
for(i=1;i<=n;i++)
nr[i]=((1LL*a*nr[i-1])%c+b)%c;
d=1,m=baza;
bool ok=true;
while(ok)
{
ok=false,k=0;
for(i=1;i<=n;i++)
v[(nr[i]%m)/d].push_back(nr[i]);
for(i=0;i<=9;i++)
{
for(j=0;j<v[i].size();j++)
nr[++k]=v[i][j];
if(v[i].size() && i)ok=true;
v[i].clear();
}
d=m;
m=m*baza;
}
for(i=1;i<=n;i+=10)
fout<<nr[i]<<" ";
return 0;
}