Pagini recente » Cod sursa (job #222112) | Cod sursa (job #2179008) | Cod sursa (job #2831879) | Cod sursa (job #430638) | Cod sursa (job #1878808)
#include <fstream>
using namespace std;
ifstream fin("dreptunghiuri.in");
ofstream fout("dreptunghiuri.out");
const int nmax= 400;
int pp[nmax*nmax+1];
int main( ) {
for ( int i= 1; i<=nmax; ++i ) {
pp[i*i]= i;
}
int n, m, sol= 0;
fin>>n>>m;
--n, --m;
for ( int i= 1; i<=n; ++i ) {
for ( int j= 1; j<=m; ++j ) {
int ans= 1;
for ( int k= 1; k<=j-1; ++k ) {
int nr= i*i-4*k*(j-k);
if ( nr>=0 && pp[nr]*pp[nr]==nr && (i-pp[nr])%2==0 ) {
++ans;
if ( nr>0 ) {
++ans;
}
}
}
sol= sol+ans*(n-i+1)*(m-j+1);
}
}
fout<<sol<<"\n";
return 0;
}