มีผู้ชมจำนวน n คนในสนามกีฬา และมีป้ายกำกับตั้งแต่ 1 ถึง n คน ทำตามกรณีเหล่านี้ -
-
ณ เวลา t1 , ผู้ชมคนแรกยืนขึ้น
-
ณ เวลา t2 ผู้ชมคนที่สองยืนขึ้น
-
…
-
ณ เวลา tk , ผู้ชมที่ k-th.
-
ณ เวลา tk + 1 , ผู้ชมที่ (k + 1) - ยืนและผู้ชมคนแรกนั่ง.
-
ณ เวลา tk + 2 , ผู้ชม (k + 2) - ผู้ชมที่ (k + 2) - ผู้ชมที่สองนั่ง.
-
…
-
ณ เวลา tn ผู้ชมที่ n ยืนและผู้ชมที่ (n – k) - นั่ง
-
ณ เวลา tn + 1 , ผู้ชมที่ (n + 1 – k) - นั่ง
-
…
-
ณ เวลา tn + k ผู้ชมที่ n นั่ง
ดังนั้น หากอินพุตเป็น n =11, k =6, t =4, เอาต์พุตจะเป็น 4 ณ เวลา t1, ผู้ชมที่ 1 ยืน จากนั้นในเวลา t2, ผู้ชมที่ 2 ยืนหลังจากนั้นในเวลา t3, ผู้ชมคนที่ 3 ยืน และในที่สุด ในเวลา t4 ผู้ชมที่ 4 ยืน ด้วยวิธีนี้ผลที่ได้คือ 4 เนื่องจากมีผู้ชมทั้งหมด 4 คน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
ถ้า t <=k แล้ว
-
กลับ t
-
-
มิฉะนั้นเมื่อ t <=n แล้ว
-
กลับ k
-
-
มิฉะนั้น
-
res :=t - n
-
res :=k - res
-
-
ผลตอบแทน
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def how_many_stand(n, k, t) : if (t <= k) : return t elif (t <= n) : return k else : res = t - n res = k - res return res n = 11 k = 6 t = 4 print(how_many_stand(n, k, t))
อินพุต
11, 6, 4
ผลลัพธ์
4