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