Cod sursa(job #2581201)

Utilizator tomaionutIDorando tomaionut Data 14 martie 2020 17:20:14
Problema Curcubeu Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

int a[1000005], b[1000005], c[1000005],n,jump[1000005],sol[1000005];
int main()
{
    int i,j,mi,ma;
    freopen("curcubeu.in", "r", stdin);
freopen("curcubeu.out", "w", stdout);
    scanf("%d", &n);
    scanf("%d%d%d", a+1, b+1, c+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;
        jump[i-1]=i;
    }
    for (i=n-1; i>=1; i--)
    {
        mi=min(a[i],b[i]);
        ma=max(a[i],b[i]);
        for (j=mi; j<=ma;)
        if (sol[j]==0)
        {
            sol[j]=c[i];
            jump[j]=ma+1;
            j++;
        }
        else j=jump[j];
    }
    for (i=1; i<=n-1; i++)
        printf("%d\n", sol[i]);



    return 0;
}