Cod sursa(job #1086105)

Utilizator andreiiiiPopa Andrei andreiiii Data 17 ianuarie 2014 18:47:47
Problema Curcubeu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;

const int N=1000005;

int a[N], b[N], c[N], d[N], e[N];

int main()
{
    freopen("curcubeu.in","r",stdin);
    freopen("curcubeu.out","w",stdout);
    int n, i, j, k, mins, maxs, aux;
    scanf("%d%d%d%d", &n, &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;
    }
    for(i=1;i<=n;i++) e[i]=i;
    for(i=n-1;i;i--)
    {
        if(a[i]>b[i])
        {
            maxs=a[i];
            mins=b[i];
        }
        else
        {
            maxs=b[i];
            mins=a[i];
        }
        for(j=mins;j<=maxs;j++)
        {
           if(!d[j]) d[j]=c[i], e[j]=e[maxs+1];
           else j=e[j]-1;
        }
    }
    for(i=1;i<n;i++) printf("%d\n",d[i]);
}