85. Three Points On A Line
 时间限制 1000 ms 内存限制 65536 KB
 题目描述
 Given points on a 2D plane, judge whether there're three points that locate on the same line.
输入格式
 The number of test cases  appears in the first line of input.
Each test case begins with the number of points . The following lines describe the coordinates of each point, in accuracy of at most 3 decimals. Coordinates are ranged in .
输出格式
 For each test case, output Yes if there're three points located on the same line, otherwise output No.
输入样例
 2
 3
 0.0 0.0
 1.0 1.0
 2.0 2.0
 3
 0.001 -2.000
 3.333 4.444
 1.010 2.528
 输出样例
 Yes
 No
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
struct node
{double x;double y;
}s[110];
int judge(node a, node b, node c)
{if((a.y - b.y)/(a.x - b.x) == (c.y - a.y)/(c.x - a.x))return 1;return 0;
}
int main()
{int t;scanf("%d", &t);while(t--){int n;scanf("%d", &n);for(int i = 0; i < n; i++){scanf("%lf%lf", &s[i].x,&s[i].y);}int flag = 0;for(int i = 0; i < n; i++){for(int j = i+1; j < n; j++){for(int k = j+1; k < n; k++){if(flag)break;flag = judge(s[i],s[j],s[k]);}}}if(flag)printf("Yes\n");elseprintf("No\n");}
}