제출 #553892

#제출 시각아이디문제언어결과실행 시간메모리
553892AA_SurelyExhibition (JOI19_ho_t2)C++14
0 / 100
0 ms340 KiB
#include <bits/stdc++.h>

#define FOR(i,x,n) 	for(int i=x; i<n; i++)
#define F0R(i,n) 	FOR(i,0,n)
#define ROF(i,x,n) 	for(int i=n-1; i>=x; i--)
#define R0F(i,n) 	ROF(i,0,n)

#define WTF 		cout << "WTF" << endl

#define IOS 		ios::sync_with_stdio(false); cin.tie(0)
#define F 			first
#define S	 		second
#define pb 			push_back

#define ALL(x) 		x.begin(), x.end()
#define RALL(x) 	x.rbegin(), x.rend()

using namespace std;
typedef long long 		LL;

typedef pair<int, int> 	PII;
typedef pair<LL, LL> 	PLL;

typedef vector<int> 	VI;
typedef vector<LL> 		VLL;
typedef vector<PII> 	VPII;
typedef vector<PLL> 	VPLL;

const int N = 2e5 + 7;
const int ALPHA = 27;
const int INF = 1e9 + 7;
const int MOD = 1e9 + 7;
const int LOG = 22;

int n, m;
int ms[N];
PII ns[N];

inline bool check(int x) {
    if (x >= m) return 1;

    int ptr = x;
    F0R(i, n) if (ptr < m && ns[i].F <= ms[ptr]) ptr++;
    return (ptr >= m);
}

int main() {
    IOS;
    
    cin >> n >> m;
    F0R(i, n) cin >> ns[i].F >> ns[i].S;
    F0R(i, m) cin >> ms[i];

    sort(ns, ns + n, [](const PII a, const PII b) {return a.S < b.S;});
    sort(ms, ms + m);

    int l = 0, r = max(n, m) + 1;

    while(l < r) {
        int mid = (l + r) >> 1;
        if(!check(mid)) l = mid + 1;
        else r = mid;
    }

    cout << m - l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...