题解 P1105 【平台】

· · 题解

暴力加贪心,n方的复杂度肯定能水过此题

从第1-n个枚举,若高度小于它,左右两端都可包住它的左端点(右端点)就记录到sum里,sum取最大高度

#include<iostream>
using namespace std;
int n,a[1001],b[1001],c[1001];
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 sum1=0,sum2=0;
        for(int j=1;j<=n;j++)if(a[j]<a[i]&&b[j]<b[i]&&c[j]>b[i])if(a[sum1]<a[j])sum1=j;//左边下落
        cout<<sum1<<" ";
        for(int j=1;j<=n;j++)if(a[j]<a[i]&&b[j]<c[i]&&c[j]>c[i])if(a[sum2]<a[j])sum2=j;//右边下落
        cout<<sum2<<endl;
    }
}