Advertisement
juanjo12x

UVA_11507_Bender_Problem

Jul 13th, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. #include<cstdio>
  2. #include<iostream>
  3. #include<map>
  4.  
  5. using namespace std;
  6.  map<string, map<string, string> > movimientos;
  7.  int n;
  8.  string cad, wire;
  9.  
  10. int main(){
  11.     /*calculo todos los movimientos posibles , son 24*/
  12.     movimientos["+x"]["+y"] = "+y";
  13.     movimientos["+x"]["-y"] = "-y";
  14.     movimientos["+x"]["+z"] = "+z";
  15.     movimientos["+x"]["-z"] = "-z";
  16.     movimientos["-x"]["+y"] = "-y";
  17.     movimientos["-x"]["-y"] = "+y";
  18.     movimientos["-x"]["+z"] = "-z";
  19.     movimientos["-x"]["-z"] = "+z";
  20.     movimientos["+y"]["+y"] = "-x";
  21.     movimientos["+y"]["-y"] = "+x";
  22.     movimientos["+y"]["+z"] = "+y";
  23.     movimientos["+y"]["-z"] = "+y";
  24.     movimientos["-y"]["+y"] = "+x";
  25.     movimientos["-y"]["-y"] = "-x";
  26.     movimientos["-y"]["+z"] = "-y";
  27.     movimientos["-y"]["-z"] = "-y";
  28.     movimientos["+z"]["+y"] = "+z";
  29.     movimientos["+z"]["-y"] = "+z";
  30.     movimientos["+z"]["+z"] = "-x";
  31.     movimientos["+z"]["-z"] = "+x";
  32.     movimientos["-z"]["+y"] = "-z";
  33.     movimientos["-z"]["-y"] = "-z";
  34.     movimientos["-z"]["+z"] = "+x";
  35.     movimientos["-z"]["-z"] = "-x";
  36.  
  37.  while(scanf("%d",&n)) {
  38.        
  39.         if(n == 0) break;
  40.         n--;
  41.         wire = "+x";/*comienzo con el eje +x*/
  42.         for(long i = 0; i < n; i++) {
  43.             cin >> cad;
  44.             if(cad != "No")
  45.                 wire = movimientos[wire][cad];
  46.         }
  47.         cout << wire << endl;
  48.  }  
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement