Cod sursa(job #27505)

Utilizator GeorgicatheredroseTrandafir George Georgicatheredrose Data 6 martie 2007 14:41:29
Problema Puteri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream.h>
#include<math.h>
ifstream f("puteri.in");
ofstream g("puteri.out");
int y[100],k,i,x[100],n;
ex(int k){
	return(x[k]<n);
}
con(int k)
{
	int i,f=1,p=1,t=1;
	for(i=1;i<=k-1;i++)
		if(y[x[i]]>=y[x[k]])
			f=0;
	for(i=1;i<=k;i++)
		p=p*y[x[i]];
	if(sqrt(p)!=abs(sqrt(p)))
		t=0;
	return(f&&t);
}
sol(int k){
	return(k==3);
}
void tipar(int k){
	int i;
	for(i=1;i<=k;i++)
		cout<<y[x[i]]<<" ";
	cout<<endl;
}
void bkt(){
	k=1;
	x[k]=0;
	while(k>0)
	{
		if(ex(k))
		{
			x[k]++;
			if(con(k))
			{
				if(sol(k))
					tipar(k);
				else
				{
					k++;
					x[k]=0;
				}
			}
		}
		else
			k--;
	}
}
void main(){
	f>>n;
	g<<endl;
	for(i=1;i<=n;i++)
		f>>y[i];
	bkt();
	f.close();
   g.close();
}