Cod sursa(job #1133098)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 4 martie 2014 13:48:42
Problema Curcubeu Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

struct data {
    int x;
    int y;
    int c;
} a[1000100];
int d[1000100],v[1000100],aux,i,j,n;

int main () {

    fin>>n>>a[1].x>>a[1].y>>a[1].c;
    d[1]=2;
    for (i=2;i<n;i++) {
        a[i].x=int((1LL*a[i-1].x*i)%n);
        a[i].y=int((1LL*a[i-1].y*i)%n);
        a[i].c=int((1LL*a[i-1].c*i)%n);
        d[i]=i+1;
    }

    for (i=n-1;i>=1;i--) {
        if (a[i].x>a[i].y) {
            aux=a[i].x;
            a[i].x=a[i].y;
            a[i].y=aux;
        }
        for (j=a[i].x;j<=a[i].y;j++) {
            if (v[j]==0){
                d[j]=a[i].y+1;
                v[j]=a[i].c;
            }else {
                while (v[j]!=0)
                    j=d[j];
                d[j]=max (j,a[i].y+1);
                j--;
            }
        }
    }
    for (i=1;i<n;i++)
        fout<<v[i]<<"\n";



    return 0;
}