V AVV
300 420 moveto 310 420 lineto 310 430 lineto stroke showpage 300 420 moveto 310 420 lineto 310 410 lineto 320 410 lineto 320 420 lineto stroke showpage
今天晚上哥哥也是醉了,熬夜到这时候,不负所望,AC之,其实这个题看起来高大上的样子,读了三遍才懂它什么意思。不过我的解法确实很麻烦,但虽然写的那么复杂,唉 起码锻炼思维逻辑能力了;
提交上去后,是各位小伙子们简直理解不了的亢奋哦!不知道最近疯狂的爱上acm了,以至于天天都不愿意去上课了丫的。接下来的代码看起来很苯蛋的样子,自己都服了。妈的。
上代码:
#include<iostream> using namespace std; #include<string> int main() { int t[200],k[200]; string str1; string str[]={"moveto","lineto"}; while(cin>>str1) { t[0]=300;k[0]=420; t[1]=310;k[1]=420; int flag=0; cout<<t[0]<<" "<<k[0]<<" "<<str[0]<<endl <<t[1]<<" "<<k[1]<<" "<<str[1]<<endl; str1=" "+str1; for(int i=2;i<str1.size();i++) { switch(str1[i]) { case 'V': { if(flag) { if((t[i-1]==t[i-2])) { if((k[i-1]>k[i-2])) { k[i]=k[i-1]; t[i]=t[i-1]-10; } else { k[i]=k[i-1]; t[i]=t[i-1]+10; } } else { if(t[i-1]>t[i-2]) { t[i]=t[i-1]; k[i]=k[i-1]+10; } else { t[i]=t[i-1]; k[i]=k[i-1]-10; } } cout<<t[i]<<" "<<k[i]<<" "<<str[1]<<endl; } else { cout<<t[1]<<" "<<k[1]+10<<" "<<str[1]<<endl; k[2]=k[1]+10; t[2]=t[1]; } flag=1; break; } case'A': { if(flag) { if(t[i-1]==t[i-2]) { if(k[i-1]<k[i-2]) { t[i]=t[i-1]-10; k[i]=k[i-1]; } else { t[i]=t[i-1]+10; k[i]=k[i-1]; } } else { if(t[i-1]<t[i-2]) { k[i]=k[i-1]+10; t[i]=t[i-1]; } else { k[i]=k[i-1]-10; t[i]=t[i-1]; } } cout<<t[i]<<" "<<k[i]<<" "<<str[1]<<endl; } else { cout<<t[1]<<" "<<k[1]-10<<" "<<str[1]<<endl; k[2]=k[1]-10; t[2]=t[1]; } flag=1; break; } default: break; } } cout<<"stroke"<<endl <<"showpage"<<endl; } return 0;
原文地址:http://blog.csdn.net/lsgqjh/article/details/44478897