1105 平台
好像之前和ksy一起做过,做了45分
最烦做这种的平面题了
所以这个题就是一个模拟?
我连题意还没有读懂啊
其实呢,这个题就是一个很简单的模拟,首先,我们先画一个图
(其实也不用画,题目中就有)
那么如果球从最上面的左边掉下来,只要判断它下一个的左沿是否小于等于最上面的左沿,2的右沿是否大于等于1的左沿,如果是如此,就找到答案,输出即可
同样,要使从最上面的右边掉下来,同理,只不过反过来了
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
const int SIZE=1005;
int n;
int a[SIZE],b[SIZE],c[SIZE];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i]>>b[i]>>c[i];//高度以及坐标
for(int i=1;i<=n;i++)
{
int t=0,s=0;
for(int j=1;j<=n;j++)
if(a[i]>a[j]&&b[i]>b[j]&&b[i]<c[j])//先判断左沿
if(a[t]<a[j])
t=j;
cout<<t<<" ";
for(int j=1;j<=n;j++)
if(a[i]>a[j]&&c[i]>b[j]&&c[i]<c[j])//在判断右沿
if(a[s]<a[j])
s=j;
cout<<s<<endl;
}
return 0;
}