一根長度為L厘米的木棒上有N只螞蟻,每只螞蟻要麼向左走,要麼向右走,速度為1厘米/秒。當兩只螞蟻相撞時,他們會同時掉頭(掉頭時間不計)給出每只螞蟻距離木棒左端的距離,問多少秒後,剛好所有螞蟻都從木棒上掉下來。
N 和 L均不超過1000
輸入第一行兩個整數,分別是N和L
接下來N行,每行先是一個字符,L或R,代表向左還是向右,然後是一個整數x,代表這個螞蟻距離木棒左端的距離。
樣例輸入:
4 10
R 1
R 5
L 3
R 9
樣例輸出:
9
難度:0
假設你在遠處觀察兩只螞蟻相向而行,他們相撞後掉頭,和直接穿過有什麼區別?
#include<stdio.h> int main() { int N, L; int x, max = 0, i; char a; scanf("%d%d", &N, &L); for (i = 1; i <= N; i++) { // i從0到n-1或許更為常用 scanf("%s%d", &a, &x); if (a == 'R') { x = L - x; // 往右走的螞蟻,那麼忽略掉頭問題,走過的路程長度就是木棒長度減去距離左端的值 } if (x > max) { max = x; } } printf("%d\n", max); return 0; }
題後反思:平時做題可以多思考給出的示例,自己來模擬這個過程,重點要動手,有時候單純思考是沒有用的~~
(第一次寫題解,慢慢積累經驗~.~)