Submission
Status:
[-SSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: erng
Problemset: จุดตัดบนกราฟ
Language: cpp
Time: 0.002 second
Submitted On: 2026-02-27 19:54:27
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll nx=1e5+5;
ll n, arr[nx], mx, cnt, ans, sw[nx], ca=1, cb=1;
vector<ll> p, add, rem;
int main()
{
cin.tie(NULL)->sync_with_stdio(false);
cin>>n;
for (int i=1; i<=n; i++)
{
cin>>arr[i];
p.push_back(arr[i]);
mx=max(mx, arr[i]);
}
sort(p.begin(), p.end());
p.erase(unique(p.begin(), p.end()), p.end());
for (int i=1; i<=n; i++)
{
arr[i]=lower_bound(p.begin(), p.end(), arr[i])-p.begin()+1;
if (i==1) continue;
add.push_back(arr[i-1]);
rem.push_back(arr[i]);
// cout<<arr[i]<<" ";
}
sort(add.begin(), add.end());
sort(rem.begin(), rem.end());
mx=p.end()-p.begin();
for (float i=1; i<=mx; i++)
{
while (add[ca]==i)
{
cnt++, ca++;
}
ans=max(cnt, ans);
while (rem[cb]==i)
{
cnt--, cb++;
}
}
cout<<ans;
}
/*
4
1 3 1 3
*/