Guest User

Untitled

a guest
Jul 23rd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1.  
  2. /*
  3. Hrvatsko otvoreno natjecanje iz informatike 2006/2007
  4. 1. kolo - Zadatak OKVIRI
  5. Programski jezik C++
  6.  
  7. Ovaj zadatak moze se rijesiti na vise nacina: moguce je direktno
  8. ispisati tekst u trazenom formatu ili prvo matricu tipa char
  9. ispuniti slovo po slovo trazenim formatom te ju zatim ispisati.
  10.  
  11. U sljedecem rjesenju kojeg je napisao Luka Kalinovcic matrica koja
  12. sadrzi znakove se u pocetku popuni tockama, a zatim popunjava slovo
  13. po slovo. Potrebno je uociti da ukoliko se na polje (Y, X) stavlja
  14. slovo da polja (Y-2, X), (Y+2, X), (Y, X-2), (Y, X+2), (Y+1, X+1),
  15. (Y+1, X-1), (Y-1, X+1) i (Y-1, X-1) sadrze '#' (ili '*').
  16. */
  17.  
  18. #include <cstdio>
  19. #include <cstring>
  20. using namespace std;
  21.  
  22. char output[5][80];
  23.  
  24. int abs( int x ) { return x < 0 ? -x : x; }
  25.  
  26. void crtaj( char x, int c, char y ) {
  27. output[2][c] = x;
  28. for( int dr = -2; dr <= 2; ++dr )
  29. for( int dc = -2; dc <= 2; ++dc )
  30. if( abs(dr) + abs(dc) == 2 )
  31. output[2+dr][c+dc] = y;
  32. }
  33.  
  34. int main( void ) {
  35. char s[16];
  36. scanf( "%s", s );
  37.  
  38. int n = strlen( s );
  39.  
  40. for( int r = 0; r < 5; ++r )
  41. for( int c = 0; c <= 4*n; ++c )
  42. output[r][c] = '.';
  43.  
  44. for( int i = 0; i < n; ++i ) crtaj( s[i], 4*i+2, '#' );
  45. for( int i = 2; i < n; i+=3 ) crtaj( s[i], 4*i+2, '*' );
  46.  
  47. for( int r = 0; r < 5; ++r ) printf( "%s\n", output[r] );
  48.  
  49. return 0;
  50. }
Add Comment
Please, Sign In to add comment