Pagini recente » Cod sursa (job #3298461) | Cod sursa (job #3298484)
#include<bits/stdc++.h>
using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
queue<int>q;
int valoare=(1<<16);
vector<queue<int>>bucket(valoare,queue<int>());
long long a,b,c,n,val, ct=0;
int main()
{in>>n>>a>>b>>c;
val=b;
q.push(val);
for(int i=1;i<n;i++)
{val=(a*val+b)%c;
q.push(int(val));
}
for(long long putere=1;putere<=valoare;putere*=valoare)
{while(!q.empty())
{int x=q.front();
q.pop();
bucket[x/putere%valoare].push(x);
}
for(int i=0;i<valoare;i++)
while(!bucket[i].empty())
{q.push(bucket[i].front());
bucket[i].pop();
}
}
while(!q.empty())
{ct++;
if(ct%10==1)
out<<q.front()<<" ";
q.pop();
}
}