#include char displej[112][112]; char novydisplej[112][112]; char* spicky = "^"; char* carky = "-|"; char* carkyflip = "|-"; char* lomitka = "/\\"; char* lomitkaflip = "/\\"; char zpracuj(char* mnozina, int index, int zobrazeni1, int zobrazeni2) { if(zobrazeni1) { if(mnozina == lomitka) { mnozina = lomitkaflip; } else if (mnozina == spicky){ switch(index) { case 0: index = 1; break; case 1: index = 0; break; case 2: index = 3; break; case 3: index = 2; break; } } else { mnozina = carkyflip; } } index += zobrazeni2; index %= 4; if(mnozina == carky || mnozina == lomitka || mnozina == carkyflip || mnozina == lomitkaflip) index %=2; return mnozina[index]; } int main() { int N; while(scanf("%d\n", &N) == 1) { for(int y = N-1;y>=0;y--) { for(int x = 0;x': zobrazeni2+=3; break; case '-': zobrazeni1 = !zobrazeni1; if(zobrazeni2 == 3 || zobrazeni2 == 1) zobrazeni2+=2; zobrazeni2 += 3; break; case '|': zobrazeni1 = !zobrazeni1; if(zobrazeni2 == 3 || zobrazeni2 == 1) zobrazeni2+=2; zobrazeni2 += 1; break; case '\\': zobrazeni1 = !zobrazeni1; if(zobrazeni2 == 3 || zobrazeni2 == 1) zobrazeni2+=2; zobrazeni2 += 2; break; case '/': zobrazeni1 = !zobrazeni1; if(zobrazeni2 == 3 || zobrazeni2 == 1) zobrazeni2+=2; break; } zobrazeni2%=4; if(divi == '\n') break; } for(int y = 0;y': novychar = zpracuj(spicky, 2, zobrazeni1, zobrazeni2); break; case '^': novychar = zpracuj(spicky, 3, zobrazeni1, zobrazeni2); break; case '|': novychar = zpracuj(carky, 1, zobrazeni1, zobrazeni2); break; case '\\': novychar = zpracuj(lomitka, 1, zobrazeni1, zobrazeni2); break; case '-': novychar = zpracuj(carky, 0, zobrazeni1, zobrazeni2); break; case '/': novychar = zpracuj(lomitka, 0, zobrazeni1, zobrazeni2); break; case 'o': novychar = 'o'; break; case 'x': novychar = 'x'; break; } novydisplej[novex][novey] = novychar; } } for(int y = N-1;y>=0;y--) { for(int x = 0;x