# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
110343 | luciocf | Exhibition (JOI19_ho_t2) | C++14 | 6 ms | 4352 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e3+10;
struct P
{
int s, v;
} p[maxn];
int c[maxn];
int n, m;
int dp[maxn][maxn];
bool comp(P a, P b)
{
return a.v < b.v;
}
int solve(int i, int j)
{
if (i == n+1 || j == m+1) return 0;
if (dp[i][j] != -1) return dp[i][j];
int ans = 0;
if (p[i].s <= c[j])
ans = max(ans, 1+solve(i+1, j+1));
ans = max(ans, solve(i+1, j));
ans = max(ans, solve(i, j+1));
return dp[i][j] = ans;
}
int main(void)
{
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++)
scanf("%d %d", &p[i].s, &p[i].v);
for (int i = 1; i <= m; i++)
scanf("%d", &c[i]);
sort(p+1, p+n+1, comp);
sort(c+1, c+m+1);
memset(dp, -1, sizeof dp);
printf("%d\n", solve(1, 1));
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |