안녕하세요. 오늘은 공부를 할 거예요.

문제

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

아이디어

집에서 공부를 하려면 N+(N-1)/8xS만큼의 시간이 걸립니다. 이때 (N-1)/8은 무엇일까요? 바로 8시간마다의 수면패턴입니다. 그러면 왜 N-1을 했을까요? 왜냐하면 딱 8시간째에 과제를 끝내면 제출을 하고 잘 수 있기 때문입니다.
같은 논리로 독서실에서 공부를 하려면 T+M+(N-1)/8x(2xT+S)만큼의 시간이 걸립니다. 왔다갔다하는 시간도 고려해주어야하지요.

소스코드

#include <iostream>
#define ll long long
using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll N, M, T, S, Zip, Dok;
    cin >> N >> M >> T >> S;

    Zip = N + (N - 1) / 8 * S;
    Dok = T + M + (M - 1) / 8 * (2 * T + S);

    if (Zip < Dok) cout << "Zip\n" << Zip;
    else cout << "Dok\n" << Dok;
}


감사합니다.

0개의 댓글