程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 4452 模擬水題

4452 模擬水題

編輯:C++入門知識

4452 模擬水題


#include
#include
#include
using namespace std;

int abs(int a)
{
    return a>0?a:(-a+1);
}
int main()
{
    int n,i,j,s1,t1,s2,t2,m;
    char first[5],second[5];
    while(~scanf("%d",&n),n)
    {
        scanf("%s",first);
        scanf("%d%d",&s1,&t1);
        scanf("%s%d%d",second,&s2,&t2);
        scanf("%d",&m);
        int fx=1,fy=1,sx=n,sy=n;
        for(i=1;i<=m;i++)
        {
            if(first[0]=='W')
            {
                if(fy-1<s1)
                {
                    fy=s1-fy+2;
                    first[0]='E';
                }
                else fy-=s1;
            } 
            else if(first[0]=='E')
            {
                if(n-fy<s1)
                {
                    fy=2*n-s1-fy;
                    first[0]='W';
                }
                else fy+=s1;
            }
            else if(first[0]=='N')
            {
                if(fx-1<s1)
                {
                    fx=s1-fx+2;
                    first[0]='S';
                }
                else fx-=s1;
            }          
            else
            {
                if(n-fx<s1)
                {
                    fx=2*n-s1-fx;
                    first[0]='N';
                }
                else fx+=s1;
            }
            if(second[0]=='W')
            {
                if(sy-1<s2)
                {
                    sy=s2-sy+2;
                    second[0]='E';
                }
                else sy-=s2;
            } 
            else if(second[0]=='E')
            {
                if(n-sy<s2)
                {
                    sy=2*n-s2-sy;
                    second[0]='W';
                }
                else sy+=s2;
            }
            else if(second[0]=='N')
            {
                if(sx-1<s2)
                {
                    sx=s2-sx+2;
                    second[0]='S';
                }
                else sx-=s2;
            }          
            else
            {
                if(n-sx<s2)
                {
                    sx=2*n-s2-sx;
                    second[0]='N';
                }
                else sx+=s2;
            }
            if(fx==sx&&fy==sy)
            {
                char p=first[0];
                first[0]=second[0];
                second[0]=p;
            }
            else
            {
                if(i%t1==0)
                {
                    if(first[0]=='W') first[0]='S';
                    else if(first[0]=='E') first[0]='N';
                    else if(first[0]=='N') first[0]='W';
                    else first[0]='E';
                }
                if(i%t2==0)
                {
                    if(second[0]=='W') second[0]='S';
                    else if(second[0]=='E') second[0]='N';
                    else if(second[0]=='N') second[0]='W';
                    else second[0]='E';
                }
            }
        }
        printf("%d %d\n",fx,fy);
        printf("%d %d\n",sx,sy);
    }
    return 0;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved