按照x坐标从小到大排序
斜率最大的肯定是相邻的两个坐标
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<string>
#include<set>
using namespace std;
typedef long long ll;
struct node
{
int x,y,no;
};
node a[10010];
bool cmp(node ta,node tb)
{
return ta.x<tb.x;
}
int main()
{
int n;
cin>>n;
for(int i = 0; i < n; ++i) {
cin>>a[i].x>>a[i].y;
a[i].no=i+1;
}
sort(a,a+n,cmp);
double ans=-1;
for(int i = 1; i < n; ++i) {
ans=max(ans,double(a[i].y-a[i-1].y)/(a[i].x-a[i-1].x));
}
for(int i = 1; i < n; ++i) {
if(double(a[i].y-a[i-1].y)/(a[i].x-a[i-1].x)==ans)
cout<<a[i-1].no<<" "<<a[i].no<<endl;
}
return 0;
}