Pagini recente » Cod sursa (job #753484) | Cod sursa (job #1829626) | Cod sursa (job #755368) | Cod sursa (job #1839057) | Cod sursa (job #3152177)
#include <fstream>
using namespace std;
int ai[1000001];
int bi[1000001];
int ci[1000001];
int v[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 capat_interval_st = min(ai[n - 1], bi[n - 1]);
int capat_interval_dr = max(ai[n - 1], bi[n - 1]);
for (int i = capat_interval_st; i <= capat_interval_dr; i++){
v[i] = ci[n - 1];
}
for (int i = n - 2; i >= 1; i--){
int capat_interval_st_2 = min(ai[i], bi[i]);
int capat_interval_dr_2 = max(ai[i], bi[i]);
if (capat_interval_st_2 < capat_interval_st && capat_interval_dr_2 > capat_interval_dr){
for (int j = capat_interval_st_2; j < capat_interval_st; j++){
v[j] = ci[i];
}
for (int j = capat_interval_dr_2; j > capat_interval_dr; j--){
v[j] = ci[i];
}
} else if (capat_interval_st_2 > capat_interval_st && capat_interval_dr_2 > capat_interval_dr){
for (int j = capat_interval_dr_2; j > capat_interval_dr; j--){
v[j] = ci[i];
}
} else if(capat_interval_st_2 < capat_interval_st && capat_interval_dr_2 < capat_interval_dr){
for (int j = capat_interval_st_2; j < capat_interval_st; j++){
v[j] = ci[i];
}
}
capat_interval_st = capat_interval_st_2;
capat_interval_dr = capat_interval_dr_2;
}
for (int i = 1; i < n; i++){
fout << v[i] << '\n';
}
return 0;
}