Cod sursa(job #1268886)

Utilizator danalex97Dan H Alexandru danalex97 Data 21 noiembrie 2014 16:58:04
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 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],nxt[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 ( nxt[l] != 0 )
            {
                l = nxt[l];
                nxt[l] = max(nxt[l],r+1);
            }
            else
            {
                ans[l] = c[i];
                nxt[l] = r+1;
                ++l;
            }
        }
    }
    for (int i=1;i<=n-1;++i)
        G<<ans[i]<<'\n';
}