Cod sursa(job #1196695)

Utilizator pavlov.ionPavlov Ion pavlov.ion Data 8 iunie 2014 20:22:36
Problema Dreptunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main  () {
	int N,M,W,H,A;
	int st,sp;
	float C1,C2,C,delta;
	freopen("dreptunghiuri.in","r",stdin);
	freopen("dreptunghiuri.out","w",stdout);
	scanf("%d%d",&N,&M);
	st=0;
	for(W=2;W<=M;W++)
		for(H=2;H<=N;H++){
			sp=1;
			for(A=2;A<H;A++){
					delta=W^2-4*A*(H-A);
						if (delta<0 || sqrt(delta)-floor(sqrt(delta))!=0)
													continue;
						else {
							C1=(W+sqrt(delta))/2;
							C2=(W-sqrt(delta))/2;
							if(C1-floor(C1)==0 && C1>0 && C1<W)
															sp++;
							if(C2-floor(C2)==0 && C2>0 && C2<W)
															sp++;
						}
			}
	st=st+(N-H+1)*(M-W+1)*sp;
	}
printf("%d",st);
fclose(stdin);
fclose(stdout);
return 0;
}