Pagini recente » Cod sursa (job #8184) | Cod sursa (job #2445362) | Cod sursa (job #1533928) | Cod sursa (job #1531558) | Cod sursa (job #919170)
Cod sursa(job #919170)
#include <fstream>
#define nmax 410
using namespace std;
long long Answer;
int N,M,Sqrt[nmax*nmax];
void init() {
int i;
for(i=1;i<=N||i<=M;i++)
Sqrt[i*i]=i;
}
void solve() {
int i,j,Delta,A,x1,x2,Nr;
init();
N--;
M--;
for(i=1;i<=N;i++)
for(j=1;j<=M;j++) {
Nr=0;
for(A=0;A<i;A++) {
Delta=j*j-4*A*(i-A);
if(Delta<0 || (Delta && !Sqrt[Delta]) || (j+Sqrt[Delta])&1)
continue;
x1=(j-Sqrt[Delta])>>1;
x2=(j+Sqrt[Delta])>>1;
if(1<=x1 && x1<=j)
Nr++;
if(x1!=x2 && 1<=x2 && x2<=j)
Nr++;
}
Answer+=1LL*Nr*(N-i+1)*(M-j+1);
}
}
void read() {
ifstream in("dreptunghiuri.in");
in>>N>>M;
in.close();
}
void write() {
ofstream out("dreptunghiuri.out");
out<<Answer<<'\n';
out.close();
}
int main() {
read();
solve();
write();
return 0;
}