一根長度為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;
}
題後反思:平時做題可以多思考給出的示例,自己來模擬這個過程,重點要動手,有時候單純思考是沒有用的~~
(第一次寫題解,慢慢積累經驗~.~)