# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
884821 | 2023-12-08T13:39:20 Z | banhcuon14 | Exhibition (JOI19_ho_t2) | C++14 | 0 ms | 348 KB |
#include <bits/stdc++.h> using namespace std; #define fi first #define se second typedef pair<int,int > pii; typedef long long ll; const int mod = 1e9 + 7; const int maxn = 5 + 1e5; int n, m; struct info{ int s, v; info(int _s = 0, int _v = 0): s(_s), v(_v) {}; bool operator < (const info& other) const { return v < other.v; } }; vector<info > a; vector<int > c; namespace subtask2 { int dp[maxn]; void solve() { a.resize(n+2, info()); c.resize(m+2); for (int i = 1; i <= n; ++i) { cin >> a[i].s >> a[i].v; } for (int i = 1; i <= m; ++i) { cin >> c[i]; } sort(c.begin() + 1, c.begin() + m + 1); sort(a.begin() + 1, a.begin() + n + 1); for (int j = 1; j <= n; ++j) { int i = lower_bound(c.begin() + 1, c.begin() + m + 1, a[j].s) - c.begin(); int mx = 0, tmp; for(int k = 1; k < i; ++k) mx = max(dp[k], mx); for (int k = i; k <= m; ++k) { tmp = dp[k]; dp[k] = max(dp[k], mx + 1); mx = max(mx, tmp); } } cout << dp[m]; } } namespace subtask3 { void solve() { vector<pair<int,int > > a(n); vector<int > c(m); for (int i = 0; i < n; ++i) { cin >> a[i].first >> a[i].second; } for (int i = 0; i < m; ++i) { cin >> c[i]; } sort(c.begin(),c.end()); sort(a.begin(),a.end(),[] (const pii& a, const pii& b) { if (a.second != b.second) return a.second < b.second; return a.first < b.first; }); int res = 0; for (int i = n-1; i >= 0 && res < m; --i) { if (c[m - res - 1] >= a[i].first) ++res; } cout << res; } } signed main() { #define name "task" if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); } ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; if (n<=1000 && m <=1000) subtask2::solve(); else subtask3::solve(); cerr << "Time Elasped: " << fixed << setprecision(3) << 1.0*clock()/CLOCKS_PER_SEC << '\n'; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Incorrect | 0 ms | 348 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Incorrect | 0 ms | 348 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Incorrect | 0 ms | 348 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |