Pagini recente » Cod sursa (job #951615) | Cod sursa (job #970224) | Cod sursa (job #927372) | Cod sursa (job #2051511) | Cod sursa (job #442061)
Cod sursa(job #442061)
#include <iostream>
#include <math.h>
//#include <conio.h>
using namespace std;
int N, M, H, W, sol;
int main() {
FILE *f1=fopen("dreptunghiuri.in", "r"), *f2=fopen("dreptunghiuri.out", "w");
int i, j, p, A, D, C1, C2;
fscanf(f1, "%d %d\n", &M, &N);
for(i=1; i<N; i++) {
for(j=1; j<M; j++) {
//aflu numarul de dreptunghiuri inscrise
//intr-un dreptunghi mare de laturi H = i, W = j
H = i; W = j; p=0;
for(A=0; A<H; A++) {
D=W*W - 4*A*(H - A);
if(D>=0 && sqrt(D)*sqrt(D)==D) {
if((W - (int)sqrt(D))%2==0 && (W - sqrt(D))/2>=0 && (W - sqrt(D))/2<=W) {
p++;
}
else if((W + (int)sqrt(D))%2==0 && (W + sqrt(D))/2>=0 && (W + sqrt(D))/2<=W) {
p++;
}
}
}
p *= ((N-H)*(M-W));
sol+=p;
}
}
fprintf(f2, "%d\n", sol);
fclose(f1); fclose(f2);
//getch();
return 0;
}