题意还真的不好懂,摸索数据就出来了,注意顺时针和逆时针时候的方向变化
/*
* 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;
}