Pagini recente » Cod sursa (job #450963) | Cod sursa (job #702051) | Cod sursa (job #1020613) | Cod sursa (job #1425636) | Cod sursa (job #3040450)
#include <cmath>
#include <functional>
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <set>
#include <map>
#include <list>
#include <time.h>
#include <math.h>
#include <random>
#include <deque>
#include <cassert>
#include <queue>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <bitset>
#include <sstream>
#include <chrono>
#include <cstring>
#include <numeric>
using namespace std;
typedef long long ll;
const int N = (int)1e6 + 7;
int a[N], b[N], c[N], nxt[N], sol[N];
signed main() {
#ifdef INFOARENA
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
freopen("curcubeu.in", "r", stdin);
freopen("curcubeu.out", "w", stdout);
#else
FILE* stream;
freopen_s(&stream, "input.txt", "r", stdin);
#endif
int n;
cin >> n >> a[1] >> b[1] >> c[1];
for (int i = 2; i < n; i++) {
a[i] = (a[i - 1] * i) % n;
b[i] = (b[i - 1] * i) % n;
c[i] = (c[i - 1] * i) % n;
}
for (int i = n - 1; i >= 1; i--) {
for (int j = min(a[i], b[i]); j <= max(a[i], b[i]); j++) {
if (nxt[j] == 0) {
nxt[j] = max(a[i], b[i]);
sol[j] = c[i];
}
else {
j = nxt[j];
}
}
}
for (int i = 1; i < n; i++) {
cout << sol[i] << "\n";
}
return 0;
}