Time Limit: 1000MS Memory Limit: 65535KB 64bit IO Format: %lld & %llu

Submit
Status

Description

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

各个时刻他允许移动的方向由一个字符串给出,字符串只包含UDLR四种字符,其中U表示向上(UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 轴正方向)移动,D表示向下(UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 轴负方向)移动,L表示向左(UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 轴负方向)移动,R表示向右(UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 轴正方向)移动。

字符串的第UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 个字符代表了第UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 时刻P酱可以移动的方向,字符串的长度只有UESTC--758--P酱的冒险旅途(模拟)-LMLPHP ,也就是说,超过UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 时刻,P酱就要被邪恶的魔王大爷抓走了~

现在P酱在坐标原点,即UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP 点,而出口在UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP 点,P酱希望在规定的时间UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 内尽快走到出口。帮助P酱在最短的时间内离开这里吧~

Input

第一行包含一个正数 UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 
(UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP ),表示数据组数。

接下来每组数据包含两行,第一行包含三个整数 UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP 
(UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP UESTC--758--P酱的冒险旅途(模拟)-LMLPHP UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP UESTC--758--P酱的冒险旅途(模拟)-LMLPHP  );第二行包含一个长度为UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 的字符串,第UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 个字符表示在UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 时刻他能移动的方向,字符串只包含UDLR四种字母。

Output

对于每组数据输出一行,表示P酱到达出口的最早时刻。如果他无法在UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 时刻内到达出口,输出-1

Sample Input

2

1 -1 5

LDRDR

-2 1 8

RRUDDLRU

Sample Output

3

-1

Hint

第一组样例:

  1. P酱在UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 时刻位于原点UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP ,他只能向左移动,但他选择不走。
  2. P酱在UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 时刻依然位于原点UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP ,他只能向下移动,于是他向下移动到了UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP
  3. P酱在UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 时刻位于UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP ,他只能向右移动,于是他移动到了出口UESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHPUESTC--758--P酱的冒险旅途(模拟)-LMLPHP ,所以在UESTC--758--P酱的冒险旅途(模拟)-LMLPHP 时刻,P酱离开了这片区域!
超时到死,一直深搜一直wa,简直要崩溃了,原来只是一个规律,,,,,
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char str[100100];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(str,'\0',sizeof(str));
int x,y,t;
scanf("%d%d%d",&x,&y,&t);
// getchar();
scanf("%s",str);
long long u,d,l,r;
u=d=r=l=0;
if(x>=0) r=x;
else l=x*-1;
if(y>=0) u=y;
else d=y*-1;
int ans=0;
for(int i=0;i<t;i++)
{
if(u==0&&d==0&&l==0&&r==0)
{
ans=i;
break;
}
if(str[i]=='U'&&u>0) u--;
else if(str[i]=='D'&&d>0) d--;
else if(str[i]=='L'&&l>0) l--;
else if(str[i]=='R'&&r>0) r--;
}
if(x==0&&y==0)
printf("0\n");
else if(ans!=0)
// printf("%s\n",str);
printf("%d\n",ans);
else printf("-1\n");
}
return 0;
}

05-11 22:05