Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: devilpoohs

Problemset: จุดตัดบนกราฟ

Language: cpp

Time: 0.015 second

Submitted On: 2026-03-06 09:57:34

#include<bits/stdc++.h>
using namespace std;
#define  f first
#define s second
#define empb emplace_back
#define emp emplace
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin>>n;
    pair<int,int> ar[n];
    for(int i=0;i<n;i++){
        cin>>ar[i].f;
    }
    if(ar[0].f<ar[1].f) ar[0].s=1;
    else ar[0].s=-1;
    if(ar[n-1].f<ar[n-2].f) ar[n-1].s=1;
    else ar[n-1].s=-1;
    for(int i=1;i<n-1;i++){
        ar[i].s=0;
        if(ar[i].f<ar[i-1].f) ar[i].s++;
        else ar[i].s--;
        if(ar[i].f<ar[i+1].f) ar[i].s++;
        else ar[i].s--;
    }
    // for(int i=0;i<n;i++){
    //     cout<<ar[i].f<<','<<ar[i].s<<'\n';
    // }
    // cout<<'\n';
    sort(ar,ar+n);
    // for(int i=0;i<n;i++){
    //     cout<<ar[i].f<<','<<ar[i].s<<'\n';
    // }
    int sum=0,maxi=INT_MIN;
    for(int i=0;i<n;i++){
        sum+=ar[i].s;
        maxi=max(maxi,sum);
    }
    cout<<maxi;
    return 0;
}