Cod sursa(job #2351464)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 22 februarie 2019 13:33:23
Problema Curcubeu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>

using namespace std;

ifstream cin("curcubeu.in");
ofstream cout("curcubeu.out");

typedef long long ll;

const int N=(int)1e6+7;

int n;
int st[N];
int dr[N];
int kol[N];

int res[N];
int nxt[N];

int main()
{
        cin>>n;
        cin>>st[1]>>dr[1]>>kol[1];
        for(int i=2;i<n;i++)
        {
                st[i]=st[i-1]*(ll)i%n;
                dr[i]=dr[i-1]*(ll)i%n;
                kol[i]=kol[i-1]*(ll)i%n;
        }
        for(int i=1;i<n;i++)
        {
                nxt[i]=i+1;
        }
        for(int i=n-1;i>=1;i--)
        {
                if(st[i]>dr[i]) swap(st[i],dr[i]);
                for(int j=st[i];j<=dr[i];j=nxt[j])
                {
                        if(res[j]==0)
                        {
                                res[j]=kol[i];
                                nxt[j]=dr[i]+1;
                        }
                }
        }
        for(int i=1;i<n;i++)
        {
                cout<<res[i]<<"\n";
        }
        return 0;
}