Pagini recente » Cod sursa (job #3307389) | Cod sursa (job #1172979) | Cod sursa (job #872488) | Cod sursa (job #2787642) | Cod sursa (job #3353110)
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+5, mod=1e9+7, C=1;
const long long INF=1e18;
//#define int long long
int a[N], b[N], c[N], color[N], parent[N], n;
int findparent(int x) {
if (parent[x]==x) {
return x;
}
return parent[x]=findparent(parent[x]);
}
void unite(int a, int b) {
parent[a]=b;
}
void solve_testcase() {
cin>>n>>a[1]>>b[1]>>c[1];
for (int i=1;i<=n;i++) {
parent[i]=i;
}
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--) {
int l=min(a[i], b[i]), r=max(a[i], b[i]);
l=findparent(l);
while (l<=r) {
color[l]=c[i];
unite(l,l+1);
l=findparent(l);
}
}
for (int i=1;i<n;i++) {
cout<<color[i]<<'\n';
}
}
signed main() {
freopen("curcubeu.in", "r", stdin);
freopen("curcubeu.out", "w", stdout);
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t=1;
//cin>>t;
while (t--) {
solve_testcase();
}
return 0;
}