Pagini recente » Cod sursa (job #2165911) | Borderou de evaluare (job #2311846) | Cod sursa (job #2504905) | Cod sursa (job #3142554) | Cod sursa (job #3148501)
#include <fstream>
#include <math.h>
#include <iostream>
#pragma GCC optimize("O3")
using namespace std;
ifstream fin ("dreptunghiuri.in");
ofstream fout ("dreptunghiuri.out");
int n, m, i, j, z, delta, sq, solcrt, rad[401*401];
long long sol=0;
int main()
{
fin>>n>>m;
n--; m--;
for (i=0; i<=400; i++)
rad[i*i]=i;
rad[0]=-1;
for (i=1; i<=n; i++)
for (j=1; j<=m; j++){
solcrt=1;
for (z=1; z<j; z++){
delta=i*i-4*z*(j-z);
if (delta>=0){
sq=rad[delta];
if (sq!=0){
if (sq==-1)
sq=0;
if ((i+sq)%2==0 && 0<(i+sq)/2)
solcrt++;
if (sq!=0 && i-sq>=0 && 0<(i-sq)/2)
solcrt++;
}
}
}
//cout<<solcrt<<' ';
sol+=solcrt*(n-i+1)*(m-j+1);
}
fout<<sol;
return 0;
}