记录编号 |
132231 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[UVa 10881] 蚂蚁 |
最终得分 |
100 |
用户昵称 |
水中音 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.248 s |
提交时间 |
2014-10-25 17:55:16 |
内存使用 |
0.55 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
char c;
int n,m,i,j,l,t,ci[10001]={0},ji[10001]={0},he[10001]={0};
struct www{
int w,z;
bool flag;
bool operator<(const www&x)const{return w<x.w;}
} a[10001];
bool comp(const www& x,const www&y)
{
if(x.z<y.z)return true;
else return false;
}
void work()
{
scanf("%d%d%d",&l,&t,&n);
for(i=1;i<=n;i++)
{
scanf("%d %c\n",&a[i].w,&c);
if(c=='R') a[i].flag=true;
else a[i].flag=false;
a[i].z=i;
}
sort(a+1,a+(n+1));
for(i=1;i<=n;i++)
{
ci[i]=a[i].z;
if(a[i].flag)a[i].w+=t;
else a[i].w-=t;
}
sort(a+1,a+(n+1));
he[ ci[1] ]=a[1].w;
if(a[1].w<0||a[1].w>l) ji[ ci[1] ]=-1;
else
{
if(a[1].flag) ji[ ci[1] ]=1;
else ji[ ci[1] ]=2;
}
for(i=2;i<=n;i++)
{
he[ ci[i] ]=a[i].w;
if(a[i].w<0||a[i].w>l)
{
ji[ ci[i] ]=-1;
continue;
}
if(a[i].w==a[i-1].w)
{
ji[ ci[i] ]=0;
ji[ ci[i-1] ]=0;
}
else
{
if(a[i].flag) ji[ ci[i] ]=1;
else ji[ ci[i] ]=2;
}
}
sort(a+1,a+(n+1),comp);
for(i=1;i<=n;i++)
{
if(ji[i]==-1) printf("Fell off\n");
if(ji[i]==0) printf("%d Turning\n",he[i]);
if(ji[i]==1) printf("%d R\n",he[i]);
if(ji[i]==2) printf("%d L\n",he[i]);
}
}
int main()
{
freopen("Ants.in","r",stdin);
freopen("Ants.out","w",stdout);
scanf("%d",&m);
for(j=1;j<=m;j++)
{
printf("Case #%d:\n",j);
work();
}
return 0;
}