Pagini recente » Cod sursa (job #264330) | Cod sursa (job #636233) | Cod sursa (job #1363661) | Cod sursa (job #282598) | Cod sursa (job #1267376)
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <deque>
#define INF (1<<30)
#define mod 666013
using namespace std;
int n, a, b, c, i, p, u, mij, last, x;
vector <int> v;
vector <int>::iterator it;
void I(int x)
{
if(x<v[0]) {v.insert(v.begin(), 1, x); return;}
if(x>v[v.size()-1]) {v.insert(v.end(), 1, x); return;}
int p=0, u=v.size()-1, y=0;
while(p<=u)
{
int mij=p+((u-p)>>1);
if(v[mij]>=x)
{
y=mij;
u=mij-1;
continue;
}
p=mij+1;
}
v.insert(v.begin()+y, 1, x);
}
int main()
{
freopen("radixsort.in", "r", stdin);
freopen("radixsort.out", "w", stdout);
scanf("%d%d%d%d", &n, &a, &b, &c);
v.push_back(b);
last=b;
//printf("%d\n", last);
for(i=2;i<=n;i++)
{
x=(1LL*a*last+1LL*b)%c;
v.push_back(x);
last=x;
}
sort(v.begin(),v.end());
i=0;
for(it=v.begin();it!=v.end();it++)
{
i++;
if((i-1)%10==0)
printf("%d ", *it);
}
return 0;
}