Pagini recente » Cod sursa (job #2318968) | Cod sursa (job #112872) | Cod sursa (job #1191936) | Cod sursa (job #1760760) | Cod sursa (job #1534151)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
const int NMax = 1e6 + 100;
int n;
int lo[NMax], hi[NMax], v[NMax];
inline void Solve(const int N, int a, int b, int c){
if(N == n) return;
a = (1LL * a * N) % n;
b = (1LL * b * N) % n;
c = (1LL * c * N) % n;
Solve(N + 1, a, b, c);
int m = min(a, b);
int M = max(a, b);
for(int i = min(a, b); i <= max(a, b); i++){
if(v[i] != 0){
m = lo[i];
M = i = hi[i];
} else {
v[i] = c;
}
M = max(M, i);
}
hi[m] = M;
lo[M] = m;
}
int main(){
int a, b, c;
fin >> n >> a >> b >> c;
Solve(1, a, b, c);
for(int i = 1; i < n; i++){
fout << v[i] << "\n";
}
return 0;
}