문제 풀이/AtCoder

[AGC030 A] Poisonous Cookies

hibye1217 2023. 1. 30. 14:03

난이도: 90 // 보정 없이는 -197

 

태그

더보기
  • Greedy (그리디)

 

풀이

1. 해독제가 담긴 쿠키는 최대 몇 개를 먹을 수 있을까?

더보기

해독제는 몇 개를 먹어도 상관없으므로, 항상 \( A+B \)개를 먹을 수 있습니다.

 

2. 독이 담긴 쿠키는 최대 몇 개를 먹을 수 있을까?

더보기

독이 담긴 쿠키는 2번 연속으로 먹으면 안 됩니다. 중간에 해독제가 반드시 1번 들어가야 하죠.

 

그럼, 독 → 해독 → 독 → 해독 → ... → 독 의 순서로 먹어야 하고,

해독제가 \( X \)개 있었다면 독이 담긴 쿠키는 \( X+1 \)개까지 먹을 수 있습니다.

물론 주어진 개수인 \( C \)개보다 더 많이 먹을 수는 없지만요.

 

코드

더보기

위 두 과정을 합치면, 해독제가 있는 맛있는 쿠키는 \( B \)개를, 독이 담긴 맛있는 쿠키는 \( \min(A+B+1, C) \)개를 먹을 수 있다는 결론을 얻을 수 있습니다.

1
2
3
4
5
void Main(){
    ll a, b, c; cin >> a >> b >> c;
    if (a+b+1 >= c){ cout << b+c; }
    elsecout << b+a+b+1; }
}
cs