题意
一开始你的船在(sx,sy)处,要去(ex.ey),给定t秒内每一秒的风向,每一秒可以选择顺着风的方向走一格或者不动,问能否在t秒内到达目的地,可以的话最早可以在多少秒到
思路
只有当顺着风的方向可以使当前位置到目的地距离减小时才顺风走,否则就不动,如果在中间某一时刻到目的地了就输出当时的秒数,如果到最后都没到就是到不了了
代码
#include <cstdio>
#include <iostream>
using namespace std;
char s[100002];
int main()
{
int t,sx,sy,ex,ey;
cin>>t>>sx>>sy>>ex>>ey;
cin>>s+1;
for(int i=1;i<=t;i++)
{
if(s[i]=='E'&&sx<ex)
sx++;
else if(s[i]=='S'&&sy>ey)
sy--;
else if(s[i]=='W'&&sx>ex)
sx--;
else if(s[i]=='N'&&sy<ey)
sy++;
if(sx==ex&&sy==ey)
{
cout<<i<<endl;
break;
}
}
if(!(sx==ex&&sy==ey))
cout<<"-1"<<endl;
return 0;
}