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; }