UVa 10881

来源:互联网 发布:松锦大战知乎 编辑:程序博客网 时间:2024/06/01 09:15
#include <cstdio>
#include <algorithm>


using namespace std;


struct Ant{
int num;
int pla;
int isL;
}a[10010],b[10010];


int c[10010];
int kk;
bool cmp(Ant x,Ant y){return x.pla < y.pla;}


char s[][10] = {"L" , "Turning" , "R"};


int main()
{
int T=0;
scanf("%d",&T);
while(T--)
{
int l,t,n,k,w;
char ch;
scanf("%d%d%d",&l,&t,&n);

for(int i=1;i<=n;i++)
{
scanf("%d %c",&k,&ch);
w = ch=='R'?1:-1;
a[i] = Ant { i,k,w };
b[i] = Ant { 0,k+w*t,w };
}

sort(a+1,a+n+1,cmp);

for(int i=1;i<=n;i++)
c[a[i].num]=i;

sort(b+1,b+n+1,cmp);

for(int i=1;i<n;i++)
if(b[i].pla == b[i+1].pla)
b[i].isL = b[i+1].isL = 0;
printf("Case #%d:\n",++kk);
for(int i=1;i<=n;i++)
{
int j = c[i];
if(b[j].pla < 0 || b[j].pla > l) printf("Fell off\n");
else 
printf("%d %s\n",b[j].pla , s[b[j].isL+1]);
}
printf("\n");
}
return 0;

}
0 0