Cod sursa(job #1012490)

Utilizator AleXoNNNeSoare Alex AleXoNNNe Data 19 octombrie 2013 10:14:39
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<iostream>
#include<fstream>
using namespace std;
int a,b,n,k,i,st[30],q;
int cmmdc()
{
	while (a!=b)
		if(a>b) 
			a=a-b;
		else
			b=b-a;
	if(a==1)
		return 1;
	return 0;
}
void init()
{
	st[k]=0;
}
int am_succesor()
{
	if(st[k]<n)
	{
		st[k]++;
		return 1;
	}
	return 0;
}
int valid ()
{
	if(k==2)
	{
		a=st[k-1];
		b=st[k];
		if(cmmdc()==1)
			return 1;
		else 
			return 0;
	}
	return 1;	
}
int solutie()
{
	return (k==2);
}
void back()
{
	int as;
	k=1;
	init();
	while(k>0)
	{
		do{}while( (as=am_succesor()) && !valid() );
		if(as)
			if(solutie())
				q++;
			else 
			{
				k++;
				init();
			}
		else 
			k--;
	}
}
int main()
{
	fstream f("fractii.in",ios::in),
			g("fractii.out",ios::out);
	f>>n;
	back();
	g<<q;
}