제출 #897518

#제출 시각아이디문제언어결과실행 시간메모리
897518vjudge1무제 (POI11_tem)C++17
100 / 100
189 ms30140 KiB
#include <bits/stdc++.h>
#define fi first
#define se second
using namespace std;
using ll = long long;
const int maxN = 1e6 + 1;   

int a[maxN], b[maxN], n;
deque<int> q;

void ReadInput()
{
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> a[i] >> b[i];
}

void Solve()
{
    b[n + 1] = -1e9 - 1;
    int res = 0, j = 0;
    for (int i = 1; i <= n; i++)
    {
        while(!q.empty() && q.front() < i)
            q.pop_front();

        if (j < i)
        {
            j = i;
            q.push_back(i);
        }

        while (j <= n && a[q.front()] <= b[j + 1])
        {
            j++;
            while (!q.empty() && a[q.back()] <= a[j])
                q.pop_back();
            q.push_back(j);
        }
        res = max(res, j - i + 1);
    }
    cout << res;
}

#define task ""
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    //freopen(task".INP", "r", stdin);
    //freopen(task".OUT", "w", stdout);
    int T = 1;
    //cin >> T;
    while (T--)
    {
        ReadInput();
        Solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...