ural 2067 Friends and Berries 数学推理

来源:互联网 发布:淘宝带图评价 淘气值 编辑:程序博客网 时间:2024/06/12 23:19

熟悉的数学定理 两边之和大于第三边 必然被不成三角形,而且是对于每一个点,都要有这样的结论,所以先排序然后所有的点都在同一边上即可

#include <bits/stdc++.h>using namespace std;struct node{    int x,y;    int id;}s[301010];int cmp(node a,node b){    if(a.x==b.x)        return a.y<b.y;    return a.x<b.x;}int main(){    int n;    cin>>n;    int tot=0;    for(int i=0;i<n;i++)    {        scanf("%d%d",&s[i].x,&s[i].y);        s[i].id=i+1;    }    sort(s,s+n,cmp);    int ok=0;    for(int i=1;i<n-1;i++)    {        if(abs(s[i].x-s[0].x)*abs(s[n-1].y-s[i].y)!=abs(s[i].y-s[0].y)*abs(s[n-1].x-s[i].x))        { ok=1;break;}              }    if(ok==0)    {        printf("1\n");     printf("%d %d\n",s[0].id,s[n-1].id );    }    else printf("0\n");}
0 0
原创粉丝点击