UESTC 758:P酱的冒险旅途【水】

本文描述了一个编程问题:P酱需要在一个限定时间内从原点出发,根据每时每刻允许移动的方向,尽快到达指定出口。文章提供了输入输出样例及AC代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

P酱的冒险旅途

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
 

P酱是个可爱的男孩子,有一天他在野外冒险,不知不觉中走入了一块神奇的地方。他在00时刻进入这个地方,每一时刻他都只能向某一特定的方向移动长度为1的距离,当然他也可以选择不移动。移动需要花费11的时间。

各个时刻他允许移动的方向由一个字符串给出,字符串只包含UDLR四种字符,其中U表示向上(yy轴正方向)移动,D表示向下(yy轴负方向)移动,L表示向左(xx轴负方向)移动,R表示向右(xx轴正方向)移动。

字符串的第xx个字符代表了第xx时刻P酱可以移动的方向,字符串的长度只有tt,也就是说,超过tt时刻,P酱就要被邪恶的魔王大爷抓走了~

现在P酱在坐标原点,即(0,0)(0,0)点,而出口在(x,y)(x,y)点,P酱希望在规定的时间tt内尽快走到出口。帮助P酱在最短的时间内离开这里吧~

Input

第一行包含一个正数 TT (T100T≤100),表示数据组数。

接下来每组数据包含两行,第一行包含三个整数 x,y,tx,y,t (105x,y105,0<t105−105≤x,y≤105,0<t≤105);第二行包含一个长度为tt的字符串,第ii个字符表示在ii时刻他能移动的方向,字符串只包含UDLR四种字母。

Output

对于每组数据输出一行,表示P酱到达出口的最早时刻。如果他无法在tt时刻内到达出口,输出-1

Sample input and output

Sample Input Sample Output
2
1 -1 5
LDRDR
-2 1 8
RRUDDLRU
3
-1
AC-code:
#include<cstdio>
#include<cstring>
int main()
{
	int T,x,y,t,i,len;
	char str[100005];
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d%d%d",&x,&y,&t);
		scanf("%s",str);
		len=strlen(str);
		for(i=0;i<len;i++)
		{
			if(x==0&&y==0)
				break;
			if(str[i]=='U'&&y>0)
				y--;
			if(str[i]=='D'&&y<0)
				y++;
			if(str[i]=='L'&&x<0)
				x++;
			if(str[i]=='R'&&x>0)
				x--;
		}
		if(i<len)
			printf("%d\n",i);
		else
			printf("-1\n");
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值