Cod sursa(job #932387)

Utilizator crudu_denisDenis Crudu crudu_denis Data 28 martie 2013 21:16:26
Problema Curcubeu Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<algorithm>

#define maxn 1000009

using namespace std;
int n,A[maxn],B[maxn],C[maxn],sol[maxn],next[maxn];
int main()
{
    ifstream fin("curcubeu.in");
    ofstream fout("curcubeu.out");
    fin>>n>>A[1]>>B[1]>>C[1];
    if(A[1]>B[1])
            swap(A[1],B[1]);
    int i;
    for(i=2;i<n;i++)
    {
        A[i]=((long long)A[i-1]*i)%n;
        B[i]=((long long)B[i-1]*i)%n;
        C[i]=((long long)C[i-1]*i)%n;
        if(A[i]>B[i])
            swap(A[i],B[i]);
    }
    for(i=n-1;i;--i)
    {


        for(int j=A[i];j<=B[i];j++)
        {
            if(!sol[j])
            {
                sol[j]=C[i];
                next[j]=B[i];
            }
            else
                j=next[j];
        }

    }
    for(i=1;i<n;i++)
        fout<<sol[i]<<'\n';
    return 0;
}