Cod sursa(job #2956339)

Utilizator Zed1YasuoAlex Birsan Zed1Yasuo Data 19 decembrie 2022 11:19:47
Problema Curcubeu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#define NMAX 1000003
using namespace std;
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
int n,A,B,C,a[NMAX],b[NMAX],c[NMAX],poz[NMAX],v[NMAX];
int main()
{
    f>>n>>A>>B>>C;
    a[1]=A;
    b[1]=B;
    c[1]=C;
    for(int i=2;i<n;i++)
        {
            a[i]=(a[i-1]*i)%n;
            b[i]=(b[i-1]*i)%n;
            if(a[i]>b[i])
                swap(a[i],b[i]);
            c[i]=(c[i-1]*i)%n;
        }
    for(int i=n-1;i>0;i--)
    {

        int st=a[i];
        int dr=b[i];
        while(st<=dr)
        {
            if(!v[st])
            {
                v[st]=c[i];
                poz[st]=dr+1;
                st++;
            }
            else
            {
                int st1=st;
                st=poz[st]+1;
                poz[st1]=max(poz[st1],dr+1);
            }
            poz[st]=max(poz[st],dr+1);
        }
    }
    for(int i=1;i<n;i++)
    {
        g<<v[i]<<'\n';
    }
    return 0;
}