牛客 数三角(枚举、钝角三角形)

题目链接:点击这里
在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<string>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<stack>
#include<queue>
#include<map>
#include<set>

using namespace std;
typedef long long ll;
const int MOD = 10000007;
const int INF = 0x3f3f3f3f;
const double PI = acos(-1.0);
const int maxn = 510;

struct point {
	int x, y;
}a[maxn];

int get(int i, int j)
{
	return (a[i].x-a[j].x)*(a[i].x-a[j].x) + (a[i].y-a[j].y)*(a[i].y-a[j].y);
}

int main()
{
	int n;
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i)
		scanf("%d%d", &a[i].x, &a[i].y);
	
	int cnt = 0;
	for(int i = 1; i <= n; ++i)
	{
		for(int j = i + 1; j <= n; ++j)
		{
			for(int k = j + 1; k <= n; ++k)
			{
				int ij = get(i,j);
				int ik = get(i,k);
				int jk = get(j,k);
				
				double dij = sqrt(1.0*ij);
				double dik = sqrt(1.0*ik);
				double djk = sqrt(1.0*jk);
				
				if(dij+dik>djk && dij+djk>dik && dik+djk>dij)		//三角形 
				{
					if(ij>ik+jk || ik>ij+jk || jk>ij+ik)			//钝角 
						cnt++;
				}
			}
		}
	}
	
	printf("%d\n", cnt); 
	return 0;
}


发布了727 篇原创文章 · 获赞 111 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_42815188/article/details/104238591