試題編號: | 201812-1 |
試題名稱: | 小明上學 |
時間限制: | 1.0s |
內存限制: | 512.0MB |
問題描述: |
題目背景 小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。爲了能儘可能充足地睡眠,他希望能夠預計自己上學所需要的時間。他上學需要經過數段道路,相鄰兩段道路之間設有至多一盞紅綠燈。 問題描述 一次上學的路上,小明記錄下了經過每段路的時間,和各個紅綠燈在小明到達路口時的顏色和倒計時秒數。希望你幫忙計算此次小明上學所用的時間。 輸入格式 輸入的第一行包含空格分隔的三個正整數 r、y、g,表示紅綠燈的設置。這三個數均不超過 106。 輸出格式 輸出一個數字,表示此次小明上學所用的時間。 樣例輸入 30 3 30 樣例輸出 70 樣例說明 小明先經過第一段道路,用時 10 秒,然後等待 5 秒的紅燈,再經過第二段道路,用時 11 秒,然後等待 2 秒的黃燈和 30 秒的紅燈,再經過第三段、第四段道路,分別用時6、3秒,然後通過綠燈,再經過最後一段道路,用時 3 秒。共計 10 + 5 + 11 + 2 + 30 + 6 + 3 + 3=70 秒。 評測用例規模與約定 測試點 1, 2 中不存在任何信號燈。 |
java:
import java.util.Scanner;
public class Main {
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 sum = 0;
int k = 0, t = 0;
for(int i = 0; i < n; i++) {
k = sc.nextInt();
t = sc.nextInt();
if(k == 0) {
sum += t;
}else if(k == 1) {
sum += t;
}else if(k == 2) {
sum += (t + r);
}else {
sum += 0;
}
}
System.out.println(sum);
}
}
c++:
#include <iostream>
using namespace std;
int main()
{
int r,y,g;cin>>r>>y>>g;
int n;cin>>n;
int sum=0;
int k,t;
for(int i=0;i<n;i++){
cin>>k>>t;
if(k==0)
sum+=t;
else if(k==1){
sum+=t;
}
else if(k==2){
sum+=t+r;
}
}
cout<<sum;
return 0;
}