Cod sursa(job #3204831)

Utilizator alexandraiacobelAlexandra Iacob alexandraiacobel Data 17 februarie 2024 18:14:23
Problema Curcubeu Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");

int n,m,i,j,a,b,c,st,dr,father[100005],sol[1000005];
int A[1000000], B[1000000], C[1000000];
int main()
{
     fin >> n >> A[1] >> B[1] >> C[1];
    father[1] = 1;
     for(i=2;i<n;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;
         father[i]=i;
     }
    father[n] = 0;

     for(i=n-1;i>=1;i--)
     {
          int st = min(A[i], B[i]);
        int dr = max(A[i], B[i]);

         for(j = st;j<=dr && j<n;) ///e ca un while ca nu e j++. COOL!
         {
             if(!sol[j])
             {
               sol[j] = C[i];
               father[j] = dr+1;
               j++;
             }
             else
                j = father[j];

         }
     }
    for(i=1; i<n;i++)
        fout<<sol[i]<<'\n';

    return 0;
}