Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2023
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.12 KB | None | 0 0
  1. #include "bits/stdc++.h"
  2. using namespace std;
  3.  
  4. // clang-format off
  5. #define sim template < class c
  6. #define ris return * this
  7. #define dor > debug & operator <<
  8. #define eni(x) sim > typename \
  9.   enable_if<sizeof dud<c>(0) x 1, debug&>::type operator<<(c i) {
  10. sim > struct rge { c b, e; };
  11. sim > rge<c> range(c i, c j) { return rge<c>{i, j}; }
  12. sim > auto dud(c* x) -> decltype(cerr << *x, 0);
  13. sim > char dud(...);
  14. struct debug {
  15. #ifdef LOCAL
  16. ~debug() { cerr << endl; }
  17. eni(!=) cerr << boolalpha << i; ris; }
  18. eni(==) ris << range(begin(i), end(i)); }
  19. sim, class b dor(pair < b, c > d) {
  20.   ris << "(" << d.first << ", " << d.second << ")";
  21. }
  22. sim dor(rge<c> d) {
  23.   *this << "[";
  24.   for (auto it = d.b; it != d.e; ++it)
  25.     *this << ", " + 2 * (it == d.b) << *it;
  26.   ris << "]";
  27. }
  28. #else
  29. sim dor(const c&) { ris; }
  30. #endif
  31. };
  32. #define imie(...) " [" << #__VA_ARGS__ ": " << (__VA_ARGS__) << "] "
  33. // debug & operator << (debug & dd, P p) { dd << "(" << p.x << ", " << p.y << ")"; return dd; }
  34. // clang-format on
  35.  
  36. #define F  first
  37. #define S  second
  38. #define eb emplace_back
  39.  
  40. string read_string ( void ) {
  41.     static char ch[1000005];
  42.     scanf ( "%s", ch );
  43.     return string ( ch );
  44. }
  45.  
  46. using ll = long long int;
  47.  
  48. vector<string> vs = {
  49.     { ".#...#...*.." }, { "#.#.#.#.*.*." }, { ".X.#.X.*.X.*" },
  50.     { "#.#.#.#.*.*." }, { ".#...#...*.." },
  51. };
  52.  
  53. int main ( void ) {
  54.     string s = read_string ();
  55.     string t;
  56.     int len = s.length ();
  57.     for ( int i = 0; i < 5; ++i ) {
  58.         t = "";
  59.         for ( int j = 0; j < len; ++j )
  60.             t += vs[i];
  61.         vs[i] = t;
  62.     }
  63.     for ( int i = 0; i < 5; ++i )
  64.         vs[i].insert ( vs[i].begin (), '.' );
  65.     vs[2][0] = '#';
  66.     int ind = 0, bl;
  67.     for ( int i = 0;; ++i ) {
  68.         char c = vs[2][i];
  69.         if ( c == 'X' ) vs[2][i] = s[ind++];
  70.         if ( ind >= len ) {
  71.             bl = i;
  72.             break;
  73.         }
  74.     }
  75.     if ( int ( s.length () ) % 3 == 2 ) vs[2][bl + 2] = '#';
  76.     for ( int i = 0; i < 5; ++i ) {
  77.         for ( int j = 0; j < bl + 3; ++j )
  78.             printf ( "%c", vs[i][j] );
  79.         puts ( "" );
  80.     }
  81.  
  82.     return 0;
  83. }
  84.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement