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;
}