Cod sursa(job #1172085)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 16 aprilie 2014 19:13:22
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
using namespace std;

struct intervale
{
    int a,b,c;
};

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

int n;
intervale l[1000005];
int NEXT[1000005],v[1000005];

int main()
{
    int i,j;
    fin>>n>>l[1].a>>l[1].b>>l[1].c;
    for (i=2;i<=n-1;i++)
        {
            l[i].a=(1LL*l[i-1].a*i)%n;
            l[i].b=(1LL*l[i-1].b*i)%n;
            l[i].c=(1LL*l[i-1].c*i)%n;
        }
    for (i=l[n-1].a;i<=l[n-1].b;i++)
        {
            v[i]=l[n-1].c;
            NEXT[i]=l[n-1].b+1;
        }
    for (i=n-2;i>=1;i--)
        for (j=l[i].a;j<=l[i].b;j++)
            {
                while (NEXT[j])
                    j=NEXT[j];
                v[j]=l[i].c;
                NEXT[j]=l[i].b+1;
            }
    for (i=1;i<=n-1;i++)
        fout<<v[i]<<"\n";
    return 0;
}