# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
125737 | 2019-07-06T09:48:39 Z | EntityIT | Exhibition (JOI19_ho_t2) | C++14 | 2 ms | 380 KB |
/* check N = 1e5 / 1e3; */ #include<bits/stdc++.h> using namespace std; const int N = (int)1e3 + 5, M = N; int n, m, c[M], f[M][N]; struct Picture { int s, v; Picture (int _s = 0, int _v = 0) : s(_s), v(_v) {} bool operator< (const Picture &_) const { return v < _.v; } } picture[N]; int main () { scanf("%d %d", &n, &m); for (int i = 1; i <= n; ++i) { int s, v; scanf("%d %d", &s, &v); picture[i] = Picture(s, v); } sort(picture + 1, picture + n + 1); for (int i = 1; i <= m; ++i) scanf("%d", c + i); sort(c + 1, c + m + 1); for (int i = 1; i <= m; ++i) { for (int j = 1; j <= n; ++j) { f[i][j] = max(f[i - 1][j], f[i][j - 1]); if (c[i] >= picture[j].s) f[i][j] = max(f[i][j], f[i - 1][j - 1] + 1); } } printf("%d", f[m][n]); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 380 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Incorrect | 2 ms | 376 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 380 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Incorrect | 2 ms | 376 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 380 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Incorrect | 2 ms | 376 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |