一,初版
package question201812;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*小明上学:已知经过每段路的时间、遇到的灯颜色和倒计时秒数。求总时间
* 1.红灯黄灯都要等,红灯过就能走,黄灯过还要等红灯过
* 2.绿灯不等,但过灯时间不算
*
*
*得分:100
*
*/
public class Main {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
//输入设置的红黄绿的总秒数
int r,g,y;
r=s.nextInt();
y=s.nextInt();
g=s.nextInt();
//输入经过多少个灯
int dengNum;
dengNum=s.nextInt();
//输入每段路的行驶时间和遇灯情况(1,2,3表遇红、黄、绿,0表行驶中,没遇灯)
//创建二维数组
ArrayList<List<Integer>> sumTimeList=new ArrayList<List<Integer>>();
for(int i=0;i<dengNum;i++) {
List path=new ArrayList(2);
path.add(s.nextInt());
path.add(s.nextInt());
sumTimeList.add(path);
}
//计算时间
int sumTime=0;
for(int i=0;i<dengNum;i++) {
if(sumTimeList.get(i).get(0)==0||sumTimeList.get(i).get(0)==1) {
sumTime+=sumTimeList.get(i).get(1);
}else if(sumTimeList.get(i).get(0)==2) {
sumTime=sumTime+(sumTimeList.get(i).get(1))+r;
}
}
//输出
System.out.println("----------这里是输出:");
System.out.println("路口数为:"+dengNum+"\n");
for(int i=0;i<dengNum;i++) {
System.out.println(sumTimeList.get(i)+"\n");
}
System.out.println("\n"+"总时间为:"+sumTime);
}
}
二.简化版
package question201812;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*
* 小明上学(简化版)
* 区别于Main.java,在输入的时候就进行了总时间的计算
*
* 得分:100
*
* */
public class test {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int r,g,y;
r=s.nextInt();
y=s.nextInt();
g=s.nextInt();
int dengNum;
dengNum=s.nextInt();
int sumTime=0;
int k,t;
for(int i=0;i<dengNum;i++) {
k=s.nextInt();
t=s.nextInt();
if(k==0||k==1) {sumTime+=t;}
else if(k==2) {sumTime=sumTime+t+r;}
}
System.out.println(sumTime);
}
}