Pagini recente » Cod sursa (job #1822276) | Cod sursa (job #2935250) | Cod sursa (job #2941162) | Cod sursa (job #2944221) | Cod sursa (job #1045012)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n,m,my[200000],z,Sk,Mi,Pl;
unsigned long long S=0;
ifstream f("dreptunghiuri.in");
f>>n>>m;
f.close();
n--;m--;
for(int i=1; i<=n || i<=m; ++i)
my[i*i]=i;
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
{
Sk=0;
for(int k=0;k<i;++k)
{
z=j*j-4*k*(i-k);
if(z<0 ||(z && !my[z]))
continue;
z=my[z];
if ((j+z)%2!=0)
continue;
Mi=(j-z)/2;
Pl=(j+z)/2;
if(0<=Mi && Mi<j)
Sk++;
if(0<=Pl && Pl<j && Mi!=Pl)
Sk++;
}
S+=(n-i+1)*(m-j+1)*Sk;
}
ofstream g("dreptunghiuri.out");
g<<S;
g.close();
return 0;
}