发一下牢骚和主题无关:
The polar bears are going fishing. They plan to sail from (sx, sy) to (ex, ey). However, the boat can only sail by wind. At each second, the wind blows in one of these directions: east, south, west or north. Assume the boat is currently at (x, y).
Alternatively, they can hold the boat by the anchor. In this case, the boat stays at (x, y). Given the wind direction for t seconds, what is the earliest time they sail to (ex, ey)?
The first line contains five integers t, sx, sy, ex, ey (1 ≤ t ≤ 105, - 109 ≤ sx, sy, ex, ey ≤ 109). The starting location and the ending location will be different.
The second line contains t characters, the i-th character is the wind blowing direction at the i-th second. It will be one of the four possibilities: "E" (east), "S" (south), "W" (west) and "N" (north).
If they can reach (ex, ey) within t seconds, print the earliest time they can achieve it. Otherwise, print "-1" (without quotes).
5 0 0 1 1 SESNW
4
10 5 3 3 6 NENSWESNEE
-1
In the first sample, they can stay at seconds 1, 3, and move at seconds 2, 4.
In the second sample, they cannot sail to the destination.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int sx,sy,ex,ey;
int t;
char direc[100100];
int nneed,eneed,wneed,sneed;//每次都得初始化
int n,e,w,s;//每次都得初始化
void caculate()
{
nneed=0;eneed=0;sneed=0;wneed=0;
int tempx=ex-sx;
int tempy=ey-sy;
if(tempx>=0)
{
eneed=tempx;
}
else
{
wneed=-tempx;
}
if(tempy>=0)
{
nneed=tempy;
}
else
{
sneed=-tempy;
}
}
int isposi(int a)
{
if(a<0)
return 0;
else return a;
}
int compare()
{
if(isposi(nneed-n)==0&&isposi(sneed-s)==0&&isposi(eneed-e)==0&&isposi(wneed-w)==0)
return 1;
else return 0;
}
void solve()
{
n=0;s=0;e=0;w=0;
scanf("%s",direc);
for(int i=0;i<t;i++)
{
switch(direc[i])
{
case 'N':
{
n++;
break;
}
case 'S':
{
s++;
break;
}
case 'E':
{
e++;
break;
}
case 'W':
{
w++;
break;
}
}
if(compare()==1)
{
printf("%d\n",i+1);
return;
}
}
printf("-1\n");
}
int main(int argc, char *argv[])
{
while(scanf("%d %d %d %d %d",&t,&sx,&sy,&ex,&ey)!=EOF)
{
caculate();//算计须要的n,e,s,w
solve();
}
return 0;
}
文章结束给大家分享下程序员的一些笑话语录: 女人篇
有的女人就是Windows虽然很优秀,但是安全隐患太大。
有的女人就是MFC她条件很好,然而不是谁都能玩的起。
有的女人就是C#长的很漂亮,但是家务活不行。
有的女人就是C++,她会默默的为你做很多的事情。
有的女人就是汇编虽然很麻烦,但是有的时候还得求它。
有的女人就是SQL,她会为你的发展带来莫大的帮助。