hdu-1033(格式)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1033

参考文章:https://blog.csdn.net/curson_/article/details/52183782

题意:一开始在点(300,420),然后向下走了10到了(310,420),A表示向右转,V表示向左转。

每次用0,1,2,3代表南,东,西,北,表示移动方向。

一开始题目理解错了,还认为是旋转变化,看来该学英语了。

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char s[100100];
int main(void)
{
    int i,j,dir;
    while(~scanf("%s",s))
    {
        int l=strlen(s);
        printf("300 420 moveto\n310 420 lineto\n");
        i=310,j=420;
        dir=1;
        for(int k=0;k<l;k++)
        {
            if(s[k]=='A') dir=(dir-1)%4;
            else dir=(dir+1)%4;
            if(dir==0) dir=4;
            
            if(dir==1) i+=10; //
            else if(dir==2) j+=10; //
            else if(dir==3) i-=10; //西 
            else if(dir==4) j-=10; //
            printf("%d %d lineto\n",i,j);
        }
        printf("stroke\nshowpage\n"); 
    }
    return 0;
}

 

posted @ 2018-10-05 20:28  麟阁  阅读(154)  评论(0编辑  收藏  举报