CCF CSPブラシ質問レコード27-201812-1小明が学校に通う(Java)

質問番号: 201812-1
質問名: 小明は学校に行く
制限時間: 1.0秒
メモリ制限: 512.0MB
問題の説明:

トピックの背景

  Xiao Mingは、Handong政治科学および法律大学の所属中学校の学生で、自宅と学校の間で自転車を毎日利用しています。できるだけ多くの睡眠を得るために、彼は学校に行くのに必要な時間を見積もることができることを望んでいます。彼は学校に行くために道路のいくつかのセクションを通過する必要があり、道路の2つの隣接するセクションの間にせいぜい1つの信号機があります。
  静州市の信号機は次のように機能します。各信号機には、赤、黄、緑の3つの信号と、カウントダウンを表示できる標識があります。信号機がr秒間赤色信号に、y秒間黄色信号に、g秒間緑色信号に設定されていると仮定すると、時刻0から、[0、r)秒以内に赤色信号が点灯し、車両は[r、r + g)秒以内に通過できません。緑色のライトが点灯し、車両は通過を許可されます。黄色のライトは[r + g、r + g + y)秒以内に点灯し、車両は通過を許可されず、順番に循環します。カウントダウンディスプレイに表示される数字l(l> 0)は、次の信号灯が変わるまでの秒数です。

問題の説明

  学校に行く途中で、Xiao Mingは道路の各セクションの時間、Xiao Mingが交差点に到着したときの各信号機の色とカウントダウン秒を記録しました。Xiao Mingが今回学校で過ごした時間の計算にご協力いただければ幸いです。

入力フォーマット

  入力の最初の行には、スペースで区切られた3つの正の整数r、y、gが含まれており、信号機の設定を示しています。これら3つの数値はいずれも106を超えていません。
  入力の2行目には、正明n(n≤100)が含まれています。これは、Xiao Mingが通過した道路セグメントの総数と、彼が見た信号機の数を表しています。
  次のn行。各行には、スペースで区切られた2つの整数kおよびtが含まれています。k = 0は道路の一部が通過し、t秒かかることを意味します(tは106を超えません)。k= 1、2、3の場合、赤色のライト、黄色のライト、および緑色のライトが表示され、カウントダウン表示が表示されます。数はtで、tはそれぞれr、y、gを超えません。

出力フォーマット

  Xiao Mingが今回学校で過ごした時間を示す数値を出力します。

入力例

30 3 30
8
0 10
1 5
0 11
2 2
0 6
0 3
3 10
0 3

出力例

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には信号灯はありません。
  テストポイント3および4のすべての信号ライトは、観察されているときは緑色です。
  テストポイント5と6のすべての信号灯は、観察されると赤になります。
  テストポイント7、8のすべての信号灯は、観察されているときは黄色です。
  さまざまな状況がテストポイント9、10に表示されます。

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);
	}

}

 

おすすめ

転載: blog.csdn.net/m0_37483148/article/details/108366432