알고리즘/문제 풀이

백준 24228번: 젓가락

Themion 2022. 1. 16. 12:40

https://www.acmicpc.net/problem/24228

 

24228번: 젓가락

두 개의 정수 $N, R$이 주어진다. $(1 ≤ N,R ≤ 10^{18})$

www.acmicpc.net

최악의 경우 N번을 뽑으면 모든 종류의 젓가락이 하나씩 나오므로 그 다음에 뽑는 젓가락은 반드시 짝이 맞는다. 이후 최악의 경우에는 방금 짝이 맞은, 즉 짝이 맞지 않은 젓가락이 나오므로 그 다음 역시 반드시 짝이 맞는 젓가락이 나온다. 즉 첫 N + 1번에서 짝이 반드시 하나 나오고, 나머지 R - 1개의 짝은 두 개씩 뽑을 때마다 나온다.

#include <cstdio>

typedef unsigned long long ull;

int main() {
    // N: 젓가락의 종류 수, R: 맞출 짝의 개수
    ull N, R;

    scanf("%lld %lld", &N, &R);
    // 최악의 경우 N번을 뽑으면 모든 종류의 젓가락이 하나씩 나오므로
    // 그 다음은 반드시 짝이 맞는 젓가락이 나온다
    // 이후 최악의 경우에는 방금 짝이 맞은, 즉 짝이 맞지 않은 젓가락이 나오므로
    // 그 다음 역시 반드시 짝이 맞는 젓가락이 나온다 
    // 즉 첫 N + 1번에서 짝이 반드시 하나 나오고
    // 나머지 R - 1개의 짝은 두 개씩 뽑을 때마다 나온다
    printf("%lld\n", (N + 1) + 2 * (R - 1));

    return 0;
}