皮卡丘 | ||||||
|
||||||
Description | ||||||
一根長度爲L米的橋上有n只可愛的皮卡丘,每隻皮卡丘要麼朝左走,要麼朝右走,初始速度爲1m/s。當兩隻皮卡丘相撞時,二者同時掉頭。我們認爲橋是獨木橋很窄,窄到皮卡丘多寬橋多寬,相撞時2只皮卡丘處於相同的位置,且掉頭不花費時間。給出每隻皮卡丘的初始位置和朝向,計算T秒之後仍在橋上的皮卡丘們的位置。 |
||||||
Input | ||||||
多組輸入數據。 每組數據第一行爲3個整數,L,T,n(0<L,T,n<=1000)。 以下n行每行描述一隻皮卡丘的初始位置,其中,整數x(0<x<L)爲皮卡丘距離橋的左端的距離,整數y爲初始方向:1爲往右,-1爲往左。 |
||||||
Output | ||||||
對於每組數據,輸出一行,按從左到右的順序輸出T秒後仍在橋上的皮卡丘的位置,每2只皮卡丘之間用空格隔開(不計方向)。 |
||||||
Sample Input | ||||||
10 1 4
1 1
5 1
3 -1
10 1
|
||||||
Sample Output | ||||||
2 2 6
|
其實 掉不掉頭有什麼區別嗎。。。
最後不還是兩個小皮卡丘走的嗎。。。
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[1004];
int main()
{
int l,t,n;
while(~scanf("%d%d%d" ,&l,&t,&n))
{
int cnt=0;
for(int i=1;i<=n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
x+=(y*t);
if(x>l||x<0)continue;
else a[cnt++]=x;
}
sort(a,a+cnt);
for(int i=0;i<cnt;i++)
{
if(i)printf(" ");
printf("%d",a[i]);
}
printf("\n");
}
}