Cod sursa(job #2316499)

Utilizator shantih1Alex S Hill shantih1 Data 11 ianuarie 2019 20:11:12
Problema Curcubeu Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <cstdio>
#define nmx 1000001
#define ll long long

using namespace std;

int n,a,b,i,j,x;
int r[nmx],t[nmx],A[nmx],B[nmx],C[nmx];

int main() {
	
	freopen("curcubeu.in", "r",stdin);
	freopen("curcubeu.out", "w",stdout);
	scanf("%d%d%d%d",&n,&A[1],&B[1],&C[1]);
	
	if(A[1]>B[1])
	{	A[1]^=B[1];	B[1]^=A[1];	A[1]^=B[1];	}
	
	for(i=2;i<n;++i)
	{
		A[i]=(A[i-1]*i)%n;
		B[i]=(B[i-1]*i)%n;
		C[i]=(C[i-1]*i)%n;
		
		if(A[i]>B[i])
		{	A[i]^=B[i];	B[i]^=A[i];	A[i]^=B[i];	}
	}
	
	for(i=n-1;i;--i)
	{
		a=A[i];	b=B[i];
		while(a<=b)
		{
			if(!r[a])
			{
				r[a]=C[i];
				t[a]=b+1;
				a++;
			}
			else	a=t[a];
		}
	}
	for(i=1;i<n;++i)
		printf("%d\n", r[i]);
	return 0;
	/*
	 Somnoroase păsărele
	 Pe la cuiburi se adună,
	 Se ascund în rămurele -
	 Noapte bună! 
	 
	 Doar izvoarele suspină, 
	 Pe când codrul negru tace;
	 Dorm şi florile-n grădină -
	 Dormi în pace!
	 
	 Trece lebăda pe ape
	 Între trestii să se culce -
	 Fie-ţi îngerii aproape, 
	 Somnul dulce! 
	 
	 Peste-a nopţii feerie
	 Se ridică mândra lună, 
	 Totu-i vis şi armonie -
	 Noapte bună!
	 */
}