Cod sursa(job #2329520)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 26 ianuarie 2019 21:12:41
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f ("curcubeu.in");
ofstream g ("curcubeu.out");
const int nmax=1e6+3;
int n,a[nmax],usu[nmax],st,dr,col[nmax],b[nmax],c[nmax],m;
bool viz[nmax];
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;
	}
	m=n;
	for(int i=1;i<=n;++i) usu[i]=i;
	while(n--)
	{
		st=min(a[n],b[n]);
		dr=a[n]+b[n]-st;
		for(int i=st;i<=dr;++i)
        {
            if(viz[i]) i=usu[i]-1;
			else
			{
				col[i]=c[n];
				viz[i]=1;
				usu[i]=dr+1;
			}
        }
	}
	for(int i=1;i<m;++i) g<<col[i]<<'\n';
	return 0;
}