题目大意:有n只蚂蚁在一根长度为L的木棍上,这n只蚂蚁有的向左移动有的向右移动,如果两只蚂蚁相碰的话,这两只蚂蚁就会按相反方向继续前进,每只蚂蚁的移动速度为1m/s,问T秒后每只蚂蚁的状态和所在的位置
解题思路:按从木棒的从左到右排序,T秒后,每只蚂蚁在木棒上的从左到右的位置是不变,这样的话,就可以确定每只蚂蚁最终位置,因为相碰的话,就会按反方向运动,这样的话就相当于两只蚂蚁交换移动,剩下的移动交给另一只蚂蚁来完成,其最终的位置是不变的,只是由另一只蚂蚁完成了而已,这样的话,由从左到右的顺序,就可以确定每只蚂蚁的最终位置和状态了
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define maxn 10010
char status[3][10] = {"L","Turning","R"};
int f[maxn];
struct Ants{
int id;
int pos;
int dir;
bool operator <(const Ants t) const {
return pos < t.pos;
}
}start[maxn], end[maxn];
int main() {
int test, L, T, N, mark = 1;
scanf("%d",&test);
while(test--) {
scanf("%d%d%d",&L, &T, &N);
char c;
int s, e , dir;
for(int i = 0; i &