Submission #1265876

#TimeUsernameProblemLanguageResultExecution timeMemory
1265876trinm01Exhibition (JOI19_ho_t2)C++20
0 / 100
0 ms324 KiB
// #pragma GCC optimize("O3") // #pragma GCC optimization("Ofast,unroll-loops") // #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include <bits/stdc++.h> using namespace std; #define int long long #define ll long long #define FOR(i, l, r) for (int i = (l); i <= (r); i++) #define FOD(i, r, l) for (int i = (r); i >= (l); i--) #define fi first #define se second #define pii pair<int, int> const ll mod = 1e9 + 7; const int MAXN = 3e3 + 5; const ll oo = 1e18+7; const int base = 0; int n, m; pii a[MAXN]; int c[MAXN]; bool cmp(pii a, pii b){ return a.se<b.se; } pii f[MAXN]; signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); // freopen("test.txt", "r", stdin); // freopen("o2.out", "w", stdout); // if(fopen(".inp", "r")){ // freopen(".inp", "r", stdin); // freopen(".out", "w", stdout); // } cin >> n >> m; FOR(i, 1, n){ cin >> a[i].fi >> a[i].se; } FOR(i, 1, m){ cin >> c[i]; } sort(c+1, c+1+m); sort(a+1, a+1+n, cmp); c[m+1]=oo; FOR(i, 1, n){ int x=lower_bound(c+1, c+1+m+1, a[i].fi)-c; pii ans=f[i-1]; FOR(j, 1, i-1){ int y=f[j].se; int xx=max(x, y+1); if(xx<=m){ if(ans.fi<f[j].fi+1){ ans={f[j].fi+1, xx}; } else if(ans.fi==f[j].fi+1){ if(ans.se>xx){ ans={f[j].fi+1, xx}; } } } } f[i]=ans; } cout << f[n].fi; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...