Cod sursa(job #416375)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 12 martie 2010 17:32:13
Problema Dreptunghiuri Scor 0
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.69 kb
#include <cstdio>
#include <cmath>

#define file_in "dreptunghiuri.in"
#define file_out "dreptunghiuri.out"

int n,m,i,s,suma,w,h;
double x1,x2,delta;

int main()
{
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d", &n, &m);
	
	for (w=2;w<=n;++w)
		 for (h=2;h<=m;++h)
		 {
			 s=1;
			 for (i=1;i<=h;++i)
			 {
				 delta=w*w-4*i*(h-i);
				 if (delta<0 || trunc(sqrt(delta))!=sqrt(delta))
					 continue;
				 x1=(w+sqrt(delta))/2;
				 x2=(w-sqrt(delta))/2;
				 if ((x1>=0 && x1<=w) || (x2>=0 && x2<=w))
					 s++;
			 }
			 suma+=(n-w+1)*(m-h+1)*s;
		 }
		 
	printf("%d", suma/2);	 
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}