Cod sursa(job #2458184)

Utilizator 1chiriacOctavian Neculau 1chiriac Data 19 septembrie 2019 20:20:40
Problema Curcubeu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("curcubeu.in");
ofstream fout ("curcubeu.out");
int minim (int x,int y)
{
	if(x<y)
		return x;
	return y;
}
int maxim (int x,int y)
{
	if(x<y)
		return y;
	return x;
}
int tata[1000003];
int find_root (int x)
{
	if(tata[x]==x)
		return x;
	else
	{
		tata[x]=find_root(tata[x]);
		return tata[x];
	}
}
void unionn (int x,int y)
{
	x=find_root(x);
	y=find_root(y);
	if(x!=y)
		tata[x]=y;
	
}
int main ()
{
	int n,a1,b1,c1,a,b,c;
	fin>>n>>a1>>b1>>c1;
	for(int i=1;i<=n;++i)
		tata[i]=i;
	for(int i=minim(a1,b1);i<=maxim(a1,b1);++i)
		unionn(i,c1);
	for(int i=2;i<n;++i)
	{
		a=(a1*i)%n;b=(b1*i)%n;c=(c1*i)%n;
		a1=a;b1=b;c1=c;
	}
	for(int i=1;i<n;i++)
		if(tata[i]!=i)
			fout<<tata[i]<<"\n";
		else 
			fout<<"0\n";
	return 0;
}