Pagini recente » Cod sursa (job #2566333) | Cod sursa (job #1105273) | Cod sursa (job #17492) | Cod sursa (job #2561701) | Cod sursa (job #2295394)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("dreptunghiuri.in");
ofstream g("dreptunghiuri.out");
int n, m, rad[160001];
int main()
{
f >> n >> m;
for(int i = 1; i <= 400; i++)
rad[i * i] = i;
long long nrsol = 0;
for(int H = 1; H < n; H++)
for(int W = 1; W < m; W++)
{
int nr = 1;
for(int A = 1; A < H; A++)
{
int delta = W * W - 4 * A * (H - A);
if(delta==0 && W%2==0)
nr++;
else
if(delta>0 && rad[delta]!=0)
{
if((W+rad[delta])%2==0 && W-rad[delta]>0)
nr++;
if((W-rad[delta])%2==0 && W-rad[delta]>=2)
nr++;
}
}
nrsol+=1LL*nr*(n-H)*(m-W);
}
g<<nrsol;
return 0;
}