Pagini recente » Cod sursa (job #2982014) | Cod sursa (job #922449) | Cod sursa (job #3315039) | Cod sursa (job #949429) | Cod sursa (job #3315101)
#include <fstream>
using namespace std;
ifstream cin("curcubeu.in");
ofstream cout("curcubeu.out");
vector<int> a, b, c;
int n, a1, b1, c1;
vector<int> parent;
vector<int> rez;
int a_n(int i) {
if (i == 1) return a1;
a[i] = (a_n(i - 1) * i) % n;
return a[i];
}
int b_n(int i) {
if (i == 1) return b1;
b[i] = (b_n(i - 1) * i) % n;
return b[i];
}
int c_n(int i) {
if (i == 1) return c1;
c[i] = (c_n(i - 1) * i) % n;
return c[i];
}
int main() {
a.resize(n + 2);
b.resize(n + 2);
c.resize(n + 2);
cin >> n >> a1 >> b1 >> c1;
a_n(n - 1);
b_n(n - 1);
c_n(n - 1);
a[1] = a1, b[1] = b1, c[1] = c1;
parent.resize(n + 2);
rez.resize(n + 2);
for (int i = 1 ; i <= n - 1 ; ++i) parent[i] = i + 1;
for (int i = n - 1 ; i >= 1 ; --i) {
int left = min(a[i], b[i]), right = max(a[i], b[i]), color = c[i];
for (int j = left ; j <= right ; j = parent[j]) {
rez[j] = color;
parent[j - 1] = parent[right];
}
}
for (int i = 1 ; i <= n - 1 ; ++i) {
cout << rez[i] << "\n";
}
return 0;
}