大佬求助,第一个点RE咋办
查看原帖
大佬求助,第一个点RE咋办
736891
Eternality楼主2022/10/24 09:16
#include<bits/stdc++.h>
using namespace std;

const int N=1e4+10;
int q,l,tt,n,v[N],tot,chu[N];

struct T
{
	int x,y,id;
}t[N],f[N];

bool cmp(T a,T b)
{
	return a.x<b.x;
}

int main()
{
	scanf("%d",&q);
	while(q--)
	{
		cout<<"Case #"<<++tot<<":\n";
		memset(v,0,sizeof v);
		scanf("%d%d%d",&l,&tt,&n);
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&t[i].x);
			f[i].x=t[i].x;
			f[i].id=i;
			char e;
			cin>>e;
			if(e=='R')t[i].y=2;
			else t[i].y=1;
		}
		sort(f+1,f+1+n,cmp);
		for(int i=1;i<=n;i++)chu[f[i].id]=i;
//		for(int i=1;i<=n;i++)cout<<"TT "<<chu[i]<<" "<<t[chu[i]].x<<endl;
		for(int i=1;i<=n;i++)
		{
			if(t[i].y==2)t[i].x+=tt;
			else t[i].x-=tt;
			v[t[i].x]++;
		}
		sort(t+1,t+1+n,cmp);
		for(int i=1;i<=n;i++)
		{
			if(t[chu[i]].x<0||t[chu[i]].x>l)
			{
				cout<<"Fell off\n";
				continue;
			}
			if(v[t[chu[i]].x]>1)
			{
				cout<<t[chu[i]].x<<" Turning\n";
				continue;
			}
			cout<<t[chu[i]].x<<(t[chu[i]].y==1 ? " L\n":" R\n");
		}
		cout<<"\n";
	}
	return 0;
}
2022/10/24 09:16
加载中...