Submission #1167239

#TimeUsernameProblemLanguageResultExecution timeMemory
1167239chikien2009Exhibition (JOI19_ho_t2)C++20
0 / 100
0 ms524 KiB
#include <bits/stdc++.h>

using namespace std;

inline void setup()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}

int n, m, l, r, c[100000], mid, res = 0;
pair<int, int> p[100000];

inline bool Check(int inp)
{
    for (int i = 0, j = 0; i < n; ++i)
    {
        if (c[j] >= p[i].first)
        {
            j++;
        }
        if (j == inp)
        {
            return true;
        }
    }
    return false;
}

inline bool comp(const pair<int, int> & ina, const pair<int, int> & inb)
{
    return (ina.second != inb.second ? ina.second > inb.second : ina.first > inb.first);
}

int main()
{
    setup();

    cin >> n >> m;
    for (int i = 0; i < n; ++i)
    {
        cin >> p[i].first >> p[i].second;
    }
    for (int i = 0; i < m; ++i)
    {
        cin >> c[i];
    }
    sort(c, c + m, greater<int>());
    sort(p, p + n, comp);
    l = 0;
    r = min(n, m);
    while (l <= r)
    {
        mid = (l + r) >> 1;
        if (Check(mid))
        {
            res = mid;
            l = mid + 1;
        }
        else
        {
            r = mid - 1;
        }
    }
    cout << res;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...