Pagini recente » Cod sursa (job #547835) | Cod sursa (job #554453) | Cod sursa (job #1736297) | Cod sursa (job #2674492) | Cod sursa (job #3152186)
#include <fstream>
using namespace std;
const int MaxN = 1e6;
int ai[MaxN + 1];
int bi[MaxN + 1];
int ci[MaxN + 1];
int v[MaxN + 1];
int urm[MaxN + 1];
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;
}
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;
}