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
*/