初始化codeforce 298 B Sail初始化

发一下牢骚和主题无关:

    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).

    

  • If the wind blows to the east, the boat will move to (x + 1, y).
  • If the wind blows to the south, the boat will move to (x, y - 1).
  • If the wind blows to the west, the boat will move to (x - 1, y).
  • If the wind blows to the north, the boat will move to (x, y + 1).

    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)?

    

Input

    The first line contains five integers t, sx, sy, ex, ey (1 ≤ t ≤ 105, - 109sx, 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).

    

Output

    If they can reach (ex, ey) within t seconds, print the earliest time they can achieve it. Otherwise, print "-1" (without quotes).

    

input
    每日一道理
只有启程,才会到达理想和目的地,只有拼搏,才会获得辉煌的成功,只有播种,才会有收获。只有追求,才会品味堂堂正正的人。
5 0 0 1 1
SESNW

    

output
4

    

input
10 5 3 3 6
NENSWESNEE

    

output
-1

    

Note

    In the first sample, they can stay at seconds 13, and move at seconds 24.

    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,她会为你的发展带来莫大的帮助。

posted @ 2013-04-21 00:23  坚固66  阅读(134)  评论(0编辑  收藏  举报