小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。
為了能盡可能充足地睡眠,他希望能夠預計自己上學所需要的時間。
他上學需要經過數段道路,相鄰兩段道路之間設有至多一盞紅綠燈。
京州市的紅綠燈是這樣工作的:每盞紅綠燈有紅、黃、綠三盞燈和乙個能夠顯示倒計時的顯示牌。
假設紅綠燈被設定為紅燈r
rr秒,黃燈y
yy秒,綠燈g
gg秒,那麼從0
00時刻起,[0,
r)
[0,r)
[0,r
) 秒內亮紅燈,車輛不許通過;[r,
r+g)
[r,r+g)
[r,r+g
)秒內亮綠燈,車輛允許通過;[r+
g,r+
g+y)
[r+g,r+g+y)
[r+g,r
+g+y
) 秒內亮黃燈,車輛不許通過,然後依次迴圈。
倒計時的顯示牌上顯示的數字 l(l
>0)
l(l>0)
l(l>0)
是指距離下一次訊號燈變化的秒數。
一次上學的路上,小明記錄下了經過每段路的時間,和各個紅綠燈在小明到達路口時的顏色和倒計時秒數。
希望你幫忙計算此次小明上學所用的時間。
第一行包含空格分隔的三個正整數 r
rr、y
yy、g
gg,表示紅綠燈的設定。
第二行包含乙個正整數n
nn,表示小明總共經過的道路段數和看到的紅綠燈數目。
接下來的n
nn行,每行包含空格分隔的兩個整數k
kk、t
tt。k=0
k=0k=
0 表示經過了一段道路,耗時t
tt秒,此處t
tt不超過106
10^6
106;k=1
、2、3
k=1、2、3
k=1、2、
3 時,分別表示看到了乙個紅燈、黃燈、綠燈,且倒計時顯示牌上顯示的數字是t
tt,此處t
tt分別不會超過 r
rr、y
yy、ggg。
輸出乙個數字,表示此次小明上學所用的時間。
1 ≤n
≤100
1≤n≤100
1≤n≤10
0,1 ≤r
,y,g
≤106
1≤r,y,g≤106
1≤r,y,
g≤10
6,測試點 1,2
1,21,
2 中不存在任何訊號燈。
測試點 3,4
3,43,
4 中所有的訊號燈在被觀察時均為綠燈。
測試點 5,6
5,65,
6 中所有的訊號燈在被觀察時均為紅燈。
測試點 7,8
7,87,
8 中所有的訊號燈在被觀察時均為黃燈。
測試點 9,10
9,10
9,10
中將出現各種可能的情況。
30330
80101
50112
2060
33100
3
70
樣例解釋
小明先經過第一段道路,用時10
1010
秒,然後等待5
55秒的紅燈,再經過第二段道路,用時11
1111
秒,然後等待2
22秒的黃燈和30
3030
秒的紅燈,再經過第三段、第四段道路,分別用時 6、3
6、36、
3秒,然後通過綠燈,再經過最後一段道路,用時3
33秒。
共計10+5
+11+2
+30+6
+3+3
=70
10+5+11+2+30+6+3+3=70
10+5+1
1+2+
30+6
+3+3
=70秒。
根據題意模擬即可。綠燈可走,紅燈和黃燈需等待。原題鏈結
#include
using
namespace std;
intmain()
cout << res << endl;
}
CCF 小明上學
試題編號 201812 1 試題名稱 小明上學 時間限制 1.0s 記憶體限制 512.0mb 問題描述 題目背景 小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。為了能盡可能充足地睡眠,他希望能夠預計自己上學所需要的時間。他上學需要經過數段道路,相鄰兩段道路之間設有至多一...
小明上學201812 1
問題描述 試題編號 201812 1 試題名稱 小明上學 時間限制 1.0s 記憶體限制 512.0mb 問題描述 題目背景 小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。為了能盡可能充足地睡眠,他希望能夠預計自己上學所需要的時間。他上學需要經過數段道路,相鄰兩段道路之間...
CCF 小明上學
題目背景 小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。為了能盡可能充足地睡眠,他希望能夠預計自己上學所需要的時間。他上學需要經過數段道路,相鄰兩段道路之間設有至多一盞紅綠燈。京州市的紅綠燈是這樣工作的 每盞紅綠燈有紅 黃 綠三盞燈和乙個能夠顯示倒計時的顯示牌。假設紅綠燈...