1 条题解
-
0
C :
#include <stdio.h> int isObtuseTriangle(int, int, int, int, int, int); int main() { int T, N, points[128][2], i, j, k, count; scanf("%d", &T); while (T--){ scanf("%d", &N); if (N < 3){ printf("%d\n", 0); continue; } for (i = 0; i < N; i++){ scanf("%d%d", &points[i][0], &points[i][1]); } count = 0; for(i = 0; i < N; i++){ for(j = i + 1; j < N; j++){ for(k = j + 1; k < N; k++){ count += isObtuseTriangle(points[i][0],points[i][1], points[j][0],points[j][1], points[k][0],points[k][1]); } } } printf("%d\n", count); } return 0; } int isObtuseTriangle(int x1, int y1, int x2, int y2, int x3, int y3) { int sideSquare[3], tmp, slope[2]; if (x1 == x2 && x1 == x3){ return 0; } slope[0] = (y2-y1)*(x3-x2); slope[1] = (y3-y2)*(x2-x1); if (slope[0] == slope[1]){ return 0; } sideSquare[0] = (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); sideSquare[1] = (x1-x3)*(x1-x3)+(y1-y3)*(y1-y3); sideSquare[2] = (x3-x2)*(x3-x2)+(y3-y2)*(y3-y2); if (sideSquare[1] > sideSquare[0]){ tmp = sideSquare[1]; sideSquare[1] = sideSquare[0]; sideSquare[0] = tmp; } if (sideSquare[2] > sideSquare[0]){ tmp = sideSquare[2]; sideSquare[2] = sideSquare[0]; sideSquare[0] = tmp; } if (sideSquare[0] > (sideSquare[1] + sideSquare[2])){ return 1; } return 0; }
- 1
信息
- ID
- 1559
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者