AcWing 3267 小明上學

2021-10-22 18:28:55 字數 2248 閱讀 2892

小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。

為了能盡可能充足地睡眠,他希望能夠預計自己上學所需要的時間。

他上學需要經過數段道路,相鄰兩段道路之間設有至多一盞紅綠燈。

京州市的紅綠燈是這樣工作的:每盞紅綠燈有紅、黃、綠三盞燈和乙個能夠顯示倒計時的顯示牌。

假設紅綠燈被設定為紅燈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 小明上學

題目背景 小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。為了能盡可能充足地睡眠,他希望能夠預計自己上學所需要的時間。他上學需要經過數段道路,相鄰兩段道路之間設有至多一盞紅綠燈。京州市的紅綠燈是這樣工作的 每盞紅綠燈有紅 黃 綠三盞燈和乙個能夠顯示倒計時的顯示牌。假設紅綠燈...