Submission

Status:
[PPPPPPPPPPPPPPP]

Score: 100

User: FotoFatTurtle

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

Language: cpp

Time: 0.043 second

Submitted On: 2025-04-01 22:08:42

#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;
    priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> q; 
    vector<int> run;
    for(int i=0;i<num;i++)
    {
        cin>>temp;
        if(i!=0)
        {
            x=min(temp,old);
            y=max(temp,old);
            q.push({x,1});
            q.push({y,-1});
            run.push_back(x);
            run.push_back(y);
        }
        old=temp;
    }
    int ans=0,nub=0;
    sort(run.begin(),run.end());
    for(int i=0;i<run.size();i++)
    {
        while(!q.empty()&&q.top().f==run[i])
        {
            nub+=q.top().s;
            //cout<<q.top().f<<"\n";
            q.pop();
        }
        //cout<<i<<" "<<nub<<"\n";
        ans=max(ans,nub);
    }
    cout<<ans;
}