2556 Edge

問題概要

V,Aの列が与えられるとき対応する直線を描くPostScriptを出力せよ。
ただしVは反時計回りに直角に曲がる折れ線を描くことを、Aは時計回りに直角に曲がる折れ線を描くことを意味する。
描画の開始位置は(300,420)、各線分の長さは10である。

解法

問題がよくわからないがサンプルの通りに出力すればおk.

ソースコード

int dx[]={10,0,-10,0},dy[]={0,10,0,-10};
char in[201];

int main()
{
	while(~scanf("%s",in))
	{
		int x=300,y=420,d=0;
		printf("%d %d moveto\n",x,y);
		for(int i=0;in[i];i++)
		{
			x+=dx[d]; y+=dy[d];
			printf("%d %d lineto\n",x,y);
			if(in[i]=='V')d=d+1&3;
			else d=d+3&3;;
		}
		x+=dx[d]; y+=dy[d];
		printf("%d %d lineto\n",x,y);
		puts("stroke\nshowpage");
	}
	return 0;
}