質問番号: | 201812-1 |
質問名: | 小明は学校に行く |
制限時間: | 1.0秒 |
メモリ制限: | 512.0MB |
問題の説明: | トピックの背景 Xiao Mingは、Handong政治科学および法律大学の所属中学校の学生で、自宅と学校の間で自転車を毎日利用しています。できるだけ多くの睡眠を得るために、彼は学校に行くのに必要な時間を見積もることができることを望んでいます。彼は学校に行くために道路のいくつかのセクションを通過する必要があり、道路の2つの隣接するセクションの間にせいぜい1つの信号機があります。 問題の説明 学校に行く途中で、Xiao Mingは道路の各セクションの時間、Xiao Mingが交差点に到着したときの各信号機の色とカウントダウン秒を記録しました。Xiao Mingが今回学校で過ごした時間の計算にご協力いただければ幸いです。 入力フォーマット 入力の最初の行には、スペースで区切られた3つの正の整数r、y、gが含まれており、信号機の設定を示しています。これら3つの数値はいずれも106を超えていません。 出力フォーマット Xiao Mingが今回学校で過ごした時間を示す数値を出力します。 入力例 30 3 30 出力例 70 サンプル概要 Xiao Mingは、最初に道路の最初のセクションを通過します(10秒かかります)。次に、5秒待って赤色信号が表示されます。次に、2番目のセクションを通過します(11秒かかります)。次に、2秒黄色信号が表示されてから30秒待機してから、3番目のセクションを通過します。道路の4番目のセクションはそれぞれ6秒と3秒かかり、次に緑色のライトを通過し、次に3秒かかる最後の道路セクションを通過します。合計10 + 5 + 11 + 2 + 30 + 6 + 3 + 3 = 70秒。 評価のユースケースの規模と規則 テストポイント1、2には信号灯はありません。 |
import java.util.Scanner;
public class 小明上学 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int r=sc.nextInt();
int y=sc.nextInt();
int g=sc.nextInt();
int n=sc.nextInt();
int[] a=new int[n];
int[] b=new int[n];
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
b[i]=sc.nextInt();
}
int res=0;
for(int i=0;i<n;i++){
if(a[i]==0){
res+=b[i];
}else if(a[i]==1){
res+=b[i];
}else if(a[i]==2){
res+=b[i]+r;
}else if(a[i]==3){
res+=0;
}
}
System.out.println(res);
}
}