Algoogle

Algorithm for Programming Contest

PKU 3619 Speed Reading

Category: PKU Tag: implementation

Speed Reading

問題概要


解法


読んで休むのを1つのブロックとしてそれがいくつ入るかをまず見る.
ちょうど入るなら最後の休む分を引いた時間が答え.
そうでないなら余るページ数を読むのにかかる時間を足した時間が答え.

コード


(3619.cpp) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cmath>
#include <cstdio>

using namespace std;

int N, K;
int S, T, R;

int main(){
    scanf("%d%d", &N, &K);
    for(int i = 0; i < K; i++){
        scanf("%d%d%d", &S, &T, &R);
        int res = N, ans = 0;
        int t = N / (S * T);
        ans = t * (T + R);
        res -= t * S * T;
        if(res == 0) ans -= R;
        else ans += ceil(1.0*res / S);
        printf("%d\n", ans);
    }
    return 0;
}

Comments