
DP[1] = 0;
DP[2] =0;
DP[3] =0;
DP[4] =10; -> 10 VS 10 + 현재 페이 (0)
코드
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> DP;
int MaxResult = 0;
int CurP = 0;
int n;
std::cin >> n;
DP.resize(n + 1);
for (int i = 0; i < n; i++)
{
int t, p;
std::cin >> t >> p;
CurP = std::max(CurP, DP[i]);
if (i + t > n)
{
continue;
}
DP[i + t] = std::max(DP[i + t], CurP + p);
MaxResult = std::max(MaxResult, DP[i + t]);
}
std::cout << MaxResult << "\n";
return 0;
}
'C++ > 백준 C++' 카테고리의 다른 글
C++ 13305 주유소 [그리드, 자료형 범위] (0) | 2024.10.28 |
---|---|
C++ 3190 뱀 [시물레이션] (0) | 2024.10.26 |
C++ 14889 스타트와 링크 [DFS, 백트래킹] (0) | 2024.10.24 |
C++ 18352 특정 거리의 도시 찾기 [최단 거리, BFS] (0) | 2024.10.23 |
C++ 10819 차이를 최대로 [백트래킹, 브루트포스] -> 필수 공부 (0) | 2024.10.23 |