VTRI - Triangles
Tác giả: flashmt
Ngôn ngữ: C++
#include<iostream>
#include<algorithm>
#include<cmath>
#define fr(a,b,c) for (a=b;a<=c;a++)
#define frr(a,b,c) for (a=b;a>=c;a--)
using namespace std;
int m,n,x,y,s,i,j;
unsigned long long r,re;
int main()
{
cin >> m >> n >> s;
s*=2;
fr(x,1,m)
fr(y,1,n)
{
r=0;
if (x*y==s) r=(x+y)*2;
else
{
fr(i,1,x)
{
j=i*y-s;
if (j%x==0) j/=x;
if (j<0 || j>y) continue;
int u=x*y-i*j-(x-i)*j*2-(y-j)*(x-i);
if (u==s) r+=4;
}
}
frr(i,x-1,1)
frr(j,y-1,1)
{
int u=x*y*2-i*y-j*x-(x-i)*(y-j);
if (u>s) break;
if (u==s) r+=4;
}
re+=r*(m-x+1)*(n-y+1);
}
cout << re << endl;
return 0;
}