题意:给定n个点,判断能够形成的锐角三角形的个数
链接:http://acm.hust.edu.cn/vjudge/contest/122823#problem/I
思路:暴力枚举,任意两边的平方和大于第三边
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <map>
#include <cmath>
using namespace std;
typedef long long LL;
LL x[110],y[110];
LL p(LL x,LL y)
{
return (x-y)*(x-y);
}
int main()
{
int t;
cin >> t;
while(t--)
{
int n,sum=0;
cin >> n;
for(int i=0; i<n; i++)
cin >> x[i] >> y[i];
for(int i=0; i<n; i++)
{
for(int j=i+1; j<n; j++)
{
for(int k=j+1; k<n; k++)
{
LL a = p(x[i],x[j]) + p(y[i],y[j]);
LL b = p(x[i],x[k]) + p(y[i],y[k]);
LL c = p(x[k],x[j]) + p(y[k],y[j]);
if(a+b > c && a+c >b && b+c >a)
sum++;
}
}
}
cout << sum << endl;
}
return 0;
}