Pagini recente » Cod sursa (job #2880010) | Cod sursa (job #269689) | Cod sursa (job #2653775) | Cod sursa (job #1705477) | Cod sursa (job #2345117)
#include<fstream>
#define inf 2147483647
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout("radixsort.out");
int n,a,b,c,*v[10000002],i,k;
void interclasare(int* &a, int* &b){
int *c=new int[a[0]+b[0]+1];
c[0]=a[0]+b[0];
int i,j,k;
for(i=1,j=1,k=1;i<=a[0] || j<=b[0]; ){
if((j>b[0]) || (i<=a[0] && a[i]<b[j])){
c[k]=a[i];i++;k++;
}
else{
c[k]=b[j];j++;k++;
}
}
delete a; delete b;
a=c;
}
int main(){
fin>>n>>a>>b>>c;
v[1]=new int[2];
v[1][0]=1; v[1][1]=b;
for(i=2;i<=n;i++){
v[i]=new int[2];
v[i][1]= (a * v[i-1][1] + b) % c;
v[i][0]=1;
}
while(n>1){
k=1;
while(k<n){
interclasare(v[k],v[n]);
k++;n--;
}
}
for(i=1;i<=v[1][0];i+=10){
fout<<v[1][i]<<" ";
}
fout.close();
return 0;
}