记录编号 132231 评测结果 AAAAAAAAAA
题目名称 [UVa 10881] 蚂蚁 最终得分 100
用户昵称 Gravatar水中音 是否通过 通过
代码语言 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;
}