Submission

Status:
[PPTSSSSSSSSSSSS]

Score: 0

User: FotoFatTurtle

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

Language: cpp

Time: 1.081 second

Submitted On: 2025-04-01 22:06:56

#include <bits/stdc++.h>
using namespace std;
#define f first
#define s second
int main(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int num;
    cin>>num;
    int old,temp,x,y,maxi=0;
    priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> q; 
    for(int i=0;i<num;i++)
    {
        cin>>temp;
        maxi=max(maxi,temp);
        if(i!=0)
        {
            x=min(temp,old);
            y=max(temp,old);
            q.push({x,1});
            q.push({y,-1});
        }
        old=temp;
    }
    maxi++;
    int ans=0,nub=0;
    for(int i=0;i<=maxi;i++)
    {
        while(!q.empty()&&q.top().f==i)
        {
            nub+=q.top().s;
            //cout<<q.top().f<<"\n";
            q.pop();
        }
        //cout<<i<<" "<<nub<<"\n";
        ans=max(ans,nub);
    }
    cout<<ans;
}