# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
110479 | 2019-05-10T21:58:54 Z | Breno_XD | Exhibition (JOI19_ho_t2) | C++14 | 7 ms | 5120 KB |
#include <bits/stdc++.h> using namespace std; #define x first #define y second typedef pair<int,int> pii; const int MAXN = 1100; int N,M, DP[MAXN][MAXN]; int quadro[MAXN]; pii vetor[MAXN]; int compara(pair<int,int> a, pair<int,int> b){ return a.y<b.y; } int dp(int id, int tipo){ //Casos Base if(DP[id][tipo]>=0) return DP[id][tipo]; if(id>N) return DP[id][tipo] = 0; if(tipo>M) return DP[id][tipo] = 0; int a = dp(id+1, tipo); int b = dp(id, tipo+1); int c = -1; if(vetor[id].x <= quadro[tipo]) c = 1+dp(id+1, tipo+1); int ans = max(a,b); ans = max(ans, c); return DP[id][tipo] = ans; } int main(){ memset(DP, -1, sizeof(DP)); scanf("%d%d", &N, &M); for(int i = 1; i<=N; i++) scanf("%d%d", &vetor[i].x, &vetor[i].y); for(int i = 1; i<=M; i++) scanf("%d", &quadro[i]); sort(vetor+1, vetor+N+1, compara); sort(quadro+1, quadro+M+1); cout << dp(1,1) << endl; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 4992 KB | Output is correct |
2 | Correct | 6 ms | 5120 KB | Output is correct |
3 | Incorrect | 6 ms | 5120 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 4992 KB | Output is correct |
2 | Correct | 6 ms | 5120 KB | Output is correct |
3 | Incorrect | 6 ms | 5120 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 4992 KB | Output is correct |
2 | Correct | 6 ms | 5120 KB | Output is correct |
3 | Incorrect | 6 ms | 5120 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |