给出长度为 n 的操作数,要求删掉长度最小的一段操作数,使得最后的终点不变
const int N=2e5+5;
int n,m;
int i,j,k;
char a[N];
map<pii,int> mp;
int main()
{
rush(){
sd(n); ss(a);
mp.clear();
int x=0,y=0;
mp[{x,y}]=1;
int l,r,ans=inf;
for(int i=0;a[i];i++){
if(a[i]=='L') x--;
else if(a[i]=='R') x++;
else if(a[i]=='U') y++;
else y--;
if(mp[{x,y}]){
if(i-mp[{x,y}]<ans){
l=mp[{x,y}];
r=i+1;
ans=r-l+1;
}
}
mp[{x,y}]=i+2;
}
if(ans==inf) puts("-1");
else printf("%d %d\n",l,r);
}
PAUSE;
return 0;
}