Cod sursa(job #3310037)

Utilizator Zeno1789Zeno Ciuca Zeno1789 Data 11 septembrie 2025 13:30:32
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#define int long long
using namespace std;

ifstream cin ("curcubeu.in");
ofstream cout ("curcubeu.out");

int v[1000005],a[1000005],b[1000005],c[1000005],pr[1000005];

int p(int i) {
    if (i==pr[i]) return i;
    return pr[i]=p(pr[i]);
}

int32_t main() {
    int n;
    cin>>n>>a[1]>>b[1]>>c[1];
    for (int i=0; i<=n; i++) {
        pr[i]=i;
    }
    if (a[1]>b[1]) swap(a[1],b[1]);
    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;
        if (a[i]>b[i]) swap(a[i],b[i]);
    }
    for (int i=n-1; i>=1; i--) {
        int j=p(a[i]);
        while (j<=b[i]) {
            v[j]=c[i];
            pr[j]=b[i]+1;
            j=p(j+1);
        }
    }
    for (int i=1; i<=n-1; i++) {
        cout<<v[i]<<'\n';
    }
}