Pagini recente » Cod sursa (job #1519997) | Cod sursa (job #2410043) | Cod sursa (job #330817) | Cod sursa (job #1738056) | Cod sursa (job #3152184)
#include <fstream>
using namespace std;
int ai[1000001];
int bi[1000001];
int ci[1000001];
int v[1000001];
int urm[1000001];
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
int main(){
int n, a1, b1, c1;
fin >> n >> a1 >> b1 >> c1;
ai[1] = a1;
bi[1] = b1;
ci[1] = c1;
for (int i = 2; i < n; i++){
ai[i] = (ai[i - 1] * i) % n;
bi[i] = (bi[i - 1] * i) % n;
ci[i] = (ci[i - 1] * i) % n;
}
// int capIntSt = min(ai[n - 1], bi[n - 1]);
// int capIntDr = max(ai[n - 1], bi[n - 1]);
// for (int i = capIntSt; i <= capIntDr; i++){
// v[i] = ci[n - 1];
// urm[i] = capIntDr + 1;
// }
for (int i = n - 1; i >= 1; i--) {
int capIntSt = min(ai[i], bi[i]);
int capIntDr = max(ai[i], bi[i]);
int poz = capIntSt;
while (poz < n && poz <= capIntDr) {
if (urm[poz] == 0) {
urm[poz] = capIntDr + 1;
v[poz] = ci[i];
poz++;
} else {
poz = urm[poz];
}
}
}
for (int i = 1; i < n; i++){
fout << v[i] << '\n';
}
return 0;
}