Cod sursa(job #2262317)

Utilizator Cojocaru_Andrei_CristianCojocaru Andrei Cristian Cojocaru_Andrei_Cristian Data 17 octombrie 2018 10:25:10
Problema Curcubeu Scor 0
Compilator cpp-64 Status done
Runda concurs_micut Marime 0.82 kb
#include <fstream>

using namespace std;
int a[1000005],b[1000005],c[1000005],v[1000005],v1[1000005];
int main()
{
    ifstream cin("curcubeu.in");
    ofstream cout("curcubeu.out");
    int n,st,dr;
    cin>>n>>a[1]>>b[1]>>c[1];
    for(int i=2; i<=n-1; i++)
    {
        a[i]=(1LL*a[i-1]*i)%n;
        b[i]=(1LL*b[i-1]*i)%n;
        c[i]=(1LL*c[i-1]*i)%n;
        v[i]=i;
    }
    for(int i=n-1;i>=1;i--)
    {
        if(a[i]>b[i])
            st=b[i],dr=a[i];
        else
            st=a[i],dr=b[i];
        while(st<=dr)
        {
            if(v1[st])
                st=v[st];
            else
            {
                v1[st]=c[i];
                v[i]=dr+1;
                ++st;
            }
        }
    }
    for(int i=1;i<=n-1;i++)
        cout<<v1[i]<<"\n";
    return 0;
}