제출 #826469

#제출 시각아이디문제언어결과실행 시간메모리
826469NhanBeooExhibition (JOI19_ho_t2)C++17
10 / 100
1078 ms340 KiB
#include <bits/stdc++.h> using namespace std; // #define int ll #define MAX LLONG_MAX #define st first #define nd second #define endl '\n' #define SZ(x) ((int)x.size()) #define ALL(x) x.begin(), x.end() typedef long long ll; typedef pair< int, int > ii; typedef pair< int, ii > iii; typedef vector< int > vi; typedef vector< ii > vii; typedef vector< iii > viii; typedef vector< vi > vvi; typedef vector< vii > vvii; typedef vector< viii > vviii; const int N = 1e5 + 5; int n, m; ii a[N]; int c[N], ans = 0; void dfs(int ptr, int last, int cnt){ ans = max(ans, cnt); if(ptr == m+1 or last == n) return; for(int i=last+1; i<=n; i++){ if(a[i].st <= c[ptr]) dfs(ptr+1, i, cnt+1); } dfs(ptr+1, last, cnt); } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for(int i=1; i<=n; i++) cin >> a[i].st >> a[i].nd; for(int i=1; i<=m; i++) cin >> c[i]; sort(a+1, a+n+1, [](ii& x, ii& y){ if(x.nd < y.nd) return true; else if(x.nd > y.nd) return false; else return x.st < y.st; }); sort(c+1, c+m+1); // for(int i=1; i<=n; i++) cout << a[i].st << ' ' << a[i].nd << endl; dfs(1, 0, 0); cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...