개발자 톡
연습문제 톡
[한양대 HCPC 2023] Hanyang Popularity Exceeding Competition
c++ 반례 부탁드립니다
- 등록일
- 2024-11-12 14:25:42
- 조회수
- 79
- 작성자
- jshs214
단순하게 현재 위치 유명인을 만나지 않는 경우와
만나는 경우 두 가지 case를 활용해서 풀었습니다.
제출하니 히든 case에 걸리는데 제가 생각하지 못한 경우가 있을까요 ? ㅠㅠ
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<pair<int, int>> v;
int n, pi, ci;
int dp[200004];
int solve(int here, int popular) {
if (here == n) return 0;
int &ret = dp[here];
if (ret != -1) return ret;
// 현재 위치의 유명인을 만나지 않는 경우
ret = solve(here + 1, popular);
// 유명인을 만나서 인기도가 오른 경우
if (abs(v[here].first - popular) <= abs(v[here].second)) {
ret = max(ret, solve(here + 1, popular + 1) + 1);
}
return ret;
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> pi >> ci;
v.push_back({pi, ci});
}
fill(dp, dp + 200004, -1);
cout << solve(0, 0);
return 0;
}
#[한양대_HCPC_2023]_Hanyang_Popularity_Exceeding_Competition