1. 程式人生 > >51Nod - 1100 斜率最大

51Nod - 1100 斜率最大

nod esp ++ sca poi name mat pri 排序

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=10005;
struct point
{
    double x;
    double y;
    int ipos;
};//斜率最大的兩個點,一定相鄰
double iMatr=-100;
bool cmp(point a,point b)
{
    return a.x<b.x;
}
double getMatr(point a,point b)
{
    return 1.0*(b.y-a.y)/(b.x-a.x);
}
int main()
{
    point p[maxn];
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
       scanf("%lf%lf",&p[i].x,&p[i].y);
       p[i].ipos=i;
    }
    sort(p+1,p+1+n,cmp);//排序
    point Ta,Tb;
    for(int i=1;i<=n-1;i++)
    {
        if(getMatr(p[i],p[i+1])>iMatr)
        {
            iMatr=getMatr(p[i],p[i+1]);
                Ta=p[i];
                Tb=p[i+1];
        }
    }
    printf("%d %d\n",Ta.ipos,Tb.ipos);
}

  

51Nod - 1100 斜率最大