Cod sursa(job #1268884)

Utilizator danalex97Dan H Alexandru danalex97 Data 21 noiembrie 2014 16:57:17
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
using namespace std;

ifstream F("curcubeu.in");
ofstream G("curcubeu.out");

const int N = 1000010;

int n,a[N],b[N],c[N],next[N],ans[N];

int main()
{
    F>>n>>a[1]>>b[1]>>c[1];
    for (int 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 (int i=n-1;i>=1;--i)
    {
        int l = min(a[i],b[i]);
        int r = max(a[i],b[i]);

        while ( l <= r )
        {
            if ( next[l] != 0 )
            {
                l = next[l];
                next[l] = max(next[l],r+1);
            }
            else
            {
                ans[l] = c[i];
                next[l] = r+1;
                ++l;
            }
        }
    }
    for (int i=1;i<=n-1;++i)
        G<<ans[i]<<'\n';
}