문제나 코드 전체를 보지는 않았지만
dp[next.first][0] = min(dp[curr][0] + next.second.second * p, dp[curr][1] + next.second.second * p + s);
dp[next.first][0] = min(dp[next.first][0], min(dp[curr][0] + next.second.second * p, dp[curr][1] + next.second.second * p + s));
밑에것만 되는 이유는 기존에 배열 내에 있던 값이 더 작을 경우가 있는 것 같습니다.
QuqqU 6년 전
47,48 번 줄을 min을 쓰지않고
dp[next.first][0] = min(dp[curr][0] + next.second.second * p, dp[curr][1] + next.second.second * p + s);
라고쓰면 50%땡이나오는데
dp[next.first][0] = min(dp[next.first][0], min(dp[curr][0] + next.second.second * p, dp[curr][1] + next.second.second * p + s));
라고쓰면 맞았다고뜨네요..
왜 그런가요???
지금보니깐 이상하네요...