HDU 1033 水题

题意还真的不好懂,摸索数据就出来了,注意顺时针和逆时针时候的方向变化

/*
 * Author:lonelycatcher
 * problem:hdu 1033
 * Type:水题
 */
#include<string.h>
#include<iostream>
#include<string>
#include<stdio.h>
#include<cstdlib>
using namespace std;
string command;
int main()
{
 while(cin>>command)
 {
  printf("300 420 moveto\n");
  printf("310 420 lineto\n");
  int len=command.length();
  int dirx=1;
  int diry=0;
  int x=310,y=420;
  for(int i=0;i<len;i++)
  {
   if(command[i]=='A')
   {
    if(dirx==1&&diry==0)
    {
     y-=10;
     dirx=0;diry=-1;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==-1&&diry==0)
    {
     y+=10;
     dirx=0;diry=1;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==0 && diry==1 )
    {
     x+=10;
     dirx=1;diry=0;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==0 && diry==-1)
    {
     x-=10;
     dirx=-1;diry=0;
     printf("%d %d lineto\n",x,y);
     continue;
    }
   }
   else
   {
    if(dirx==1&&diry==0)
    {
     y+=10;
     dirx=0;diry=1;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==-1&&diry==0)
    {
     y-=10;
     dirx=0;diry=-1;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==0 && diry==1 )
    {
     x-=10;
     dirx=-1;diry=0;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==0 && diry==-1)
    {
     x+=10;
     dirx=1;diry=0;
     printf("%d %d lineto\n",x,y);
     continue;
    }
   }
  }
  printf("stroke\nshowpage\n");
 }
 return 0;
}

posted on 2011-08-01 08:15  lonelycatcher  阅读(497)  评论(0编辑  收藏  举报

导航