Cod sursa(job #3363789)

Utilizator medeeavasile56@gmail.comVasile Medeea [email protected] Data 22 august 2026 18:50:50
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("curcubeu.in");
ofstream cout("curcubeu.out");
const int NMAX=1000005;
struct vect
{
    int a,b,c;
}v[NMAX];
int sol[NMAX],nxt[NMAX];
int f(int x)
{
    if(nxt[x]==x) return x;
    return nxt[x]=f(nxt[x]);
}
int main()
{
    int n,a1,b1,c1; cin>>n>>a1>>b1>>c1;
    v[1].a=a1; v[1].b=b1; v[1].c=c1;
    for(int i=2;i<n;i++)
    {
        v[i].a=(long long)v[i-1].a*i%n;
        v[i].b=(long long)v[i-1].b*i%n;
        v[i].c=(long long)v[i-1].c*i%n;
    }
    for(int i=1;i<=n;i++) nxt[i]=i;
    for(int i=n-1;i>=1;i--){
        int st=min(v[i].a,v[i].b);
        int dr=max(v[i].a,v[i].b);
        st=f(st);
        while(st<=dr)
        {
            sol[st]=v[i].c;
            nxt[st]=f(st+1);
            st=f(st);
        }
    }
    for(int i=1;i<=n-1;i++) cout<<sol[i]<<'\n';
    return 0;
}