[ABC031B] 運動管理
题意翻译
高桥君是ATcoder的吉祥物,为了维持他的魅力,他要每天做运动(题目叫运动管理),他每天做L分钟以上H分钟以下的运动
然而,你(青木君)最近没有看到高桥君运动,在意高桥君运动状况的你询问了高桥君的运动时间,判断是不是需要加长时间
若运动时间超过了H,输出-1,不用再运动;若运动时间在L~h之间,输出0,不用再运动;若运动时间低于L,输出还需要运动多长时间才能到下限L。
输入格式:
第一行:两个整数L,H(1≦L≦H≦10^4)
第二行:询问次数N (1≦N≦50)
3~N+2行:每行一个整数A(0≦A≦10^4)
输出格式:
有N行,对于每个询问输出一个数
翻译贡献者UID:78064
题目描述
[problemUrl]: https://atcoder.jp/contests/abc031/tasks/abc031_b
高橋君は AtCoder 社のマスコットキャラクターである。
マスコットキャラクターとしての魅力を維持するために、高橋君は適度な運動をすることになっている。高橋君は週の運動時間が $ L $ 分以上 $ H $ 分以下でなければならない。
しかしながら、青木君は最近、高橋君が運動しているところを見ていない。高橋君の運動状況が気になった青木君は、高橋君の過去 $ N $ 週間の運動時間が制限にあっているのか、そして足りないなら少なくともあと何分運動する必要があったのかを計算するプログラムを作成することにした。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ L $ $ H $ $ N $ $ A_1 $ $ A_2 $ : $ A_N $
- $ 1 $ 行目には、$ 2 $ 個の整数 $ L $, $ H\ (1≦L≦H≦10^4) $ が空白区切りで与えられる。これは、高橋君が週に $ L $ 分以上 $ H $ 分以下の運動をしなければならないことを表す。
- $ 2 $ 行目には、整数 $ N\ (1≦N≦50) $ が与えられる。これは青木君が $ N $ 週分の運動時間について調べていることを表す。
- $ 3 $ 行目からの $ N $ 行には、高橋君の運動状況を表す整数が与えられる。$ N $ 行の内 $ i\ (1≦i≦N) $ 行目には、整数 $ A_i\ (0≦A_i≦10^4) $ が与えられる。これは $ i $ 個前の週において高橋君が $ A_i $ 分運動したことを表す。
输出格式
出力は $ N $ 行からなる。$ i\ (1≦i≦N) $ 行目には、$ i $ 個前の週において高橋君が必要な分よりも多く運動している場合は $ -1 $ を、そうでない場合は追加で必要な運動時間の最小値を分単位で $ 1 $ 行に出力せよ。
出力の末尾にも改行を入れること。
输入输出样例
输入样例 #1
300 400
3
240
350
480
输出样例 #1
60
0
-1
输入样例 #2
50 80
5
10000
50
81
80
0
输出样例 #2
-1
0
-1
0
50
说明
### Sample Explanation 1
青木君は $ 3 $ 個の週について調査している。 - $ 1 $ 個前の週において、高橋君は $ 240 $ 分運動しており、これは運動時間の下限である $ 300 $ 分に満たない。高橋君はあと $ 60 $ 分追加で運動する必要があるため、$ 1 $ 行目には $ 60 $ を出力する。 - $ 2 $ 個前の週において、高橋君は $ 350 $ 分運動しており、これは運動時間の制限に適している。そのため、$ 2 $ 行目には $ 0 $ を出力する。 - $ 3 $ 個前の週において、高橋君は $ 480 $ 分運動しており、これは運動時間の上限である $ 400 $ 分を越えており、運動しすぎである。そのため、$ 3 $ 行目には $ -1 $ を出力する。