PKU 2993 Emag eht htiw Em Pleh

http://poj.org/problem?id=2993
先程の問題の入出力を逆にするバージョン。
こちらのほうが微妙に楽な気がします。

これも書くだけ。

main(){
  vector<string> ans(17,string(33,' '));
  for(int i=0;i<17;i+=2){
    for(int j=0;j<33;j+=4){
      if(i)ans[i-1][j]='|';
      ans[i][j]='+';
      if(j){
        int x=i/2,y=j/4;
        rep(k,3){
          ans[i][j-k-1]='-';
          if(i && (x+y)%2)ans[i-1][j-k-1]='.';
          else if(i)ans[i-1][j-k-1]=':';
        }
      }
    }
  }
  rep(rp,2){
    string in;
    getline(cin,in);
    int pos;
    while(true){
      pos=in.find(',');
      if(pos==string::npos)break;
      in[pos]=' ';
    }
    stringstream ss(in.substr(7));
    while(ss>>in){
      char cc;
      if(SZ(in)==2)cc='P'+rp*('p'-'P');
      else cc=in[0]-rp*('P'-'p');
      int y=(in[SZ(in)-2]-'a')*4+2,x=(in[SZ(in)-1]-'1')*2+1;
      ans[x][y]=cc;
    }
  }
  reverse(ALL(ans));
  rep(i,17){
    cout<<ans[i]<<endl;
  }
}