Pagini recente » Cod sursa (job #1681872) | Cod sursa (job #105561) | Cod sursa (job #1119574) | Cod sursa (job #1682447) | Cod sursa (job #2174639)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
queue <int> v;
queue <int> q[11];
long long kmax,n,a,b,c,k,aux,i,j,calc;
int main()
{
f>>n>>a>>b>>c;
aux=b;
k=0;
while(aux){k++;aux=aux/10;}
kmax=k;
v.push(b);
calc=b;
for(i=2;i<=n;i++)
{
calc=((a*calc)%c+b)%c;
aux=calc;
k=0;
while(aux){k++;aux=aux/10;}
if(k>kmax)kmax=k;
v.push(calc);
}
aux=1;
for(k=1;k<=kmax;k++)
{
while(!v.empty())
{
calc=v.front()/aux%10;
q[calc].push(v.front());
v.pop();
}
for(j=0;j<=9;j++)
{
while(!q[j].empty())
{
//cout<<q[j].front()<<" ";
v.push(q[j].front());
q[j].pop();
}
}
aux=aux*10;
}
int k=1;
while(!v.empty())
{
if(k%10==1)
{g<<v.front()<<" ";}
k++;
v.pop();
}
return 0;
}