Cod sursa(job #3192553)

Utilizator AlexanderCernyCernaianu Alexandru AlexanderCerny Data 12 ianuarie 2024 20:39:26
Problema Curcubeu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#define DIM 1000001

using namespace std;

ifstream fin ("curcubeu.in");
ofstream fout("curcubeu.out");

unsigned int n,i,j,st,f;
unsigned int a[DIM],b[DIM],c[DIM],sol[DIM],nextEmpty[DIM];
int main()
{
    fin>>n>>a[1]>>b[1]>>c[1];
    nextEmpty[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;
        nextEmpty[i]=i;
    }
    for(i=n-1;i>=1;i--)
    {
        j=st=max(a[i],b[i]);
        f=min(a[i],b[i]);
        while(j<=f)
        {
            if(nextEmpty[j]==j)
            {
                sol[j]=c[i];
                nextEmpty[j]=f+1;
                j++;
            }
            else
            {
                int cj=nextEmpty[j];
                nextEmpty[j]=f+1;
                j=cj;
            }
        }
    }
    for(i=1;i<n;i++)
        fout<<sol[i]<<'\n';
    return 0;
}