fork download
  1. #include <iostream>
  2. #include <sstream>
  3. #include <fstream>
  4. #include <string>
  5. #include <vector>
  6. #include <deque>
  7. #include <queue>
  8. #include <stack>
  9. #include <set>
  10. #include <map>
  11. #include <algorithm>
  12. #include <functional>
  13. #include <utility>
  14. #include <bitset>
  15. #include <cmath>
  16. #include <cstdlib>
  17. #include <ctime>
  18. #include <cstdio>
  19.  
  20. using namespace std;
  21.  
  22. #define REP(i,n) for((i)=0;(i)<(int)(n);(i)++)
  23. #define snuke(c,itr) for(__typeof((c).begin()) itr=(c).begin();itr!=(c).end();itr++)
  24.  
  25. int X,Y;
  26. int a[110][110];
  27. int dx[] = {1,-1,0,0,0}, dy[] = {0,0,1,-1,0}, dz[] = {1,1,1,1,2};
  28. string ds = "||--+";
  29.  
  30. bool empty(int x, int y){
  31. return (x >= 0 && x < X && y >= 0 && y < Y && a[x][y] == 0);
  32. }
  33.  
  34. bool can_put(int x, int y){
  35. int i;
  36. REP(i,5) if(!empty(x + dx[i], y + dy[i])) return false;
  37. return true;
  38. }
  39.  
  40. void put(int x, int y){
  41. int i;
  42. REP(i,5) a[x+dx[i]][y+dy[i]] += dz[i];
  43. }
  44.  
  45. void remove(int x, int y){
  46. int i;
  47. REP(i,5) a[x+dx[i]][y+dy[i]] = 0;
  48. }
  49.  
  50. bool movable(int x, int y){
  51. int i;
  52. bool ans = false;
  53. remove(x, y);
  54. REP(i,4) if(can_put(x + dx[i], y + dy[i])) ans = true;
  55. put(x, y);
  56. return ans;
  57. }
  58.  
  59. void main2(void){
  60. int i,j,k;
  61.  
  62. REP(i,X) REP(j,Y) a[i][j] = 0;
  63.  
  64. vector <pair <int, int> > p;
  65. REP(i,X) REP(j,Y) p.push_back(make_pair(i, j));
  66. random_shuffle(p.begin(),p.end());
  67. REP(i,p.size()) if(can_put(p[i].first, p[i].second)) put(p[i].first, p[i].second);
  68.  
  69. int counter = 0;
  70.  
  71. while(counter < 300000){
  72. counter++;
  73. int x = rand() % X;
  74. int y = rand() % Y;
  75.  
  76. if(a[x][y] == 2 && movable(x, y)){
  77. counter = 0;
  78. for(i=x-2;i<=x+2;i++) for(j=y-2;j<=y+2;j++) if(i >= 0 && i < X && j >= 0 && j < Y && a[i][j] == 2) remove(i, j);
  79. vector <pair <int, int> > p;
  80. for(i=x-4;i<=x+4;i++) for(j=y-4;j<=y+4;j++) p.push_back(make_pair(i, j));
  81. random_shuffle(p.begin(),p.end());
  82. REP(i,p.size()) if(can_put(p[i].first, p[i].second)) put(p[i].first, p[i].second);
  83. }
  84. }
  85. }
  86.  
  87. int main(void){
  88. int i,j,k;
  89.  
  90. cin >> X >> Y;
  91. main2();
  92.  
  93. vector <string> board(X);
  94. REP(i,X) REP(j,Y) board[i] += '.';
  95.  
  96. REP(i,X) REP(j,Y) if(a[i][j] == 2) REP(k,5) board[i+dx[k]][j+dy[k]] = ds[k];
  97.  
  98. REP(i,X) printf("%s\n", board[i].c_str());
  99.  
  100. return 0;
  101. }
  102.  
Success #stdin #stdout 0.22s 15288KB
stdin
100 100
stdout
...|....|...|..|..|..|..|..|...|.....|...|.....|..|...|...|..|....|...|..|..|....|..|..|..|...|...|.
..-+-|.-+-|-+--+--+--+--+--+-|-+-|..-+-|-+-|..-+--+-|-+-|-+--+-|.-+-|-+--+--+-.|-+--+--+--+-|-+-|-+-
..||-+-||-+-||.||.|.||.||.||-+-|-+-.||-+-|-+-.||.||-+-|-+-|.||-+-||-+-|.||..||-+-||.||.||.|-+-|-+-|.
.-+-||-+-||.-+--+-|-+--+--+-||...||-+-.||..||-+--+-||.|.|.|-+-||-+-||.|-+-.|-+-||-+--+--+-.||...||..
.||-+-||-+-|.||.|-+-|..|..|-+-..|-+-|.|-+-.-+-||.|-+--+-|-+-|-+-||-+--+-||-+-||-+-||.||.||-+-|..-+-.
-+-||-+-||-+--+-|.|.|..|...||.|-+-|.|-+-||..|.-+-|.|.||-+-|..||-+-||..||-+-||-+-||-+--+--+-|-+-|.||.
.|-+-||-+-.|..|-+-|-+--+-|-+--+-|.|-+-|.-+-.|..|-+-|-+-||..|-+-||-+-.|-+-||-+-||-+-||.||.||..|-+--+-
..||-+-||..|..|.|-+-||.|-+-|.||.|-+-||...||-+-..||-+-|-+-|-+-|-+-.||-+-||-+-||-+-||-+--+--+-.|.|..|.
.-+-||-+-|-+--+-..||-+-|.|.|-+--+-||-+-|.-+-||.-+-.|..||-+-||..|.|-+-||-+-||-+-||-+-||.||.||-+-|..|.
.||-+-||-+-||.||..-+-|-+-|-+-||.||-+-|-+-.||-+-||..|.-+-.||-+-.|-+-||-+-||-+-||-+-||-+--+--+-|-+--+-
-+-||-+-||.-+--+-..|.|.|-+-||-+--+-|...||.-+-|-+-|-+-||..-+-||-+-||-+-||-+-||-+-||-+-|.||.||.|.|.||.
.|-+-.|-+-|.|..||..|-+-.||.-+-||.|.|...-+-||..||-+-|-+-|..||-+-|.-+-||-+-||-+-|.-+-|.|-+--+--+-|-+-.
.|.||..||-+-|..-+--+-||-+-|.|.-+-|-+-|..|-+-.-+-||..||-+-|-+-||..||.-+-||-+-|.|..|.|-+-||.||.|-+-||.
-+--+--+-||-+-|.|.||.-+-|-+-|..|-+-|-+-.|.|..||-+-|-+-||-+-||-+--+-..||-+-|.|-+-.|-+-||-+--+-.||.-+-
.||.||.|-+-||-+-|-+-|.|.|.|-+-|..|.|.||-+-|.-+-||-+-|-+-.||-+-|..||..-+-|.|-+-||-+-||-+-||.||-+-.||.
.-+--+-..|-+-||-+-|-+-|-+-.||-+-.|-+--+-|-+-||-+-||...||.-+-|...|-+-|.|.|-+-||-+-||-+-||-+--+-||-+-.
..||.||....|-+-||.|.|-+-||-+-.||-+-||.|..||-+-||-+-|..-+-||...|-+-|-+-|-+-||-+-||-+-||-+-|.||.-+-||.
..-+--+-|..|.|-+--+-|.||-+-|.|-+-|.-+-|.-+-||-+-||-+-|.|-+-.|-+-||..|-+-||-+-||-+-||-+-||.-+-.||.-+-
..||.||-+--+-|.|..|-+--+-|.|-+-||..||-+-||-+-||-+-||-+-|.||-+-||-+-|..||-+-||-+-||-+-||-+-||.-+-|.|.
.-+--+-||.||-+-|..|.||.|.|-+-||-+--+-.|-+-||-+-||-+-||-+--+-|.-+-|-+-.-+-||-+-||-+-||-+-|-+-.||-+-|.
.||..|-+--+-.|-+--+--+-|-+-||-+-||.||..||-+-||-+-.|-+-.||.|.|..||..||..||-+-||-+-||-+-|.|.||-+-||-+-
-+-|...||.||...||.||.|-+-||-+-||-+--+--+-||-+-||..|.|.|-+-|-+-.-+-|-+-|-+-||-+-||-+-||.-+--+-|-+-||.
.|-+-|.-+--+-.|-+--+-|.||-+-||-+-||.|.||-+-||-+-|-+-|-+-|-+-||..|-+-|-+-||-+-||-+-||-+-||.||..||-+-.
.|.|-+-||..||-+-||.|-+--+-|.-+-||-+-|-+-||-+-||-+-|-+-|.|.||-+-.|.||..||-+-||-+-|.-+-|-+--+-|-+-||..
-+-|.|-+-|.-+-|.-+-|.||.||..||.-+-|-+-|-+-||-+-||...||.-+--+-||-+--+-.-+-||-+-||..||.|.|.||-+-|-+-|.
.|-+-..|-+-||...||-+--+--+--+-.||..||.|.|-+-||-+-..|-+-||..||-+-||.||..||-+-||-+--+--+-|-+-||.|.|-+-
.|.||..|.|-+-|.-+-||.||.||..||-+-.-+--+-..|-+-||.|-+-|-+-.|-+-||-+--+-|-+-||-+-|..||.|-+-|-+--+-|.|.
-+--+--+-|.|-+-||-+--+--+-|.-+-|..||..||...||-+--+-||..||-+-||-+-|.||-+-||-+-||..|-+-.||.|.|.||-+-|.
.|.||..|-+-|.|-+-||..|.||-+-||..|-+-|.-+-|-+-.|..||-+-|-+-|.-+-||.-+-.||-+-||-+--+-||-+--+-|-+-||-+-
.|-+-..|.|-+-.||-+-..|-+-.|-+-|-+-|-+-.|-+-|..|..-+-|-+-||..||.-+-||.|-+-|.-+-|..||-+-||.|-+-|-+-.|.
-+-|.|-+-..||-+-||.|-+-||..||-+-||..||..||..|-+-|.|...||-+--+-|.|-+--+-|.|..||..|-+-||-+-.||..||..|.
.||.-+-||..-+-|-+--+-||-+--+-||.-+-|-+--+-|-+-|-+-|..|-+-|.||-+-|.|..|.|-+-.-+--+-|.-+-||-+-|-+-|-+-
.-+-||.-+-|.||..|.||.-+-|.||-+-|.|-+-|.||-+-|..||-+--+-|..-+-||-+-|..|-+-||..||.||..||.-+-|-+-|-+-|.
.||-+-|.|-+--+-.|-+-.||..-+-||-+-|.|..-+-.||..-+-.|.||.|..||-+-||-+--+-||-+-|-+--+--+-.||..||.|.||..
-+-||-+-..||.||-+-||-+-..||-+-||-+-|..||.|-+-.||..|-+--+--+-||-+-.|.||.-+-|-+-||.|..||-+-|-+--+--+-.
.|-+-.||..-+--+-||-+-||.-+-||-+-||-+--+--+-||-+-|-+-||.|.||-+-||..|-+-|.|.|.|.-+-|..-+-|-+-|.||..||.
..||.|-+-..||.||-+-||-+-||-+-||-+-||..||.|.-+-|-+-||-+-|-+-||-+-|-+-|-+-|-+-|..|-+-|.|...|.|-+-.|-+-
.-+--+-||..-+--+-|.-+-|-+-||-+-||-+-|.-+-|..||..||-+-|-+-|-+-||-+-|.|.|-+-|-+-..||-+-|...|-+-|.-+-|.
.||.||.-+-|.|.||.|..||..|-+-||-+-||-+-||-+-|-+-|-+-|..||.|.|-+-||..-+-|.|.|.||.-+-||-+-|-+-|...||.|.
-+--+-|.|-+-|-+--+-|-+-|..|-+-||-+-||-+-||-+-|-+-|..|-+--+-|.|-+-..||-+-|-+--+-||-+-||-+-||..|-+--+-
.|..|-+-|.|-+-||.|-+-|-+-..||-+-||-+-||-+-||..||..|-+-||.|-+-|.||.-+-||-+-|.||-+-.|-+-||.-+--+-|.||.
.|...||-+-.||.-+-|.|.|.||.-+-||-+-||-+-||-+-|-+-|-+-||-+-..|-+--+-||-+-||.|-+-.||..||-+-|.|.||.|-+-.
-+-|-+-.||-+-|.|-+-|-+--+-||-+-||-+-||-+-||-+-|-+-||-+-||..|.||.|-+-||-+--+-||.-+--+-||-+-|-+--+-||.
.|-+-|.|-+-|-+-.||-+-|..|-+-||-+-||-+-||-+-||..||.-+-||-+--+--+-|.|-+-||.||.-+-||..|-+-||-+-||.||-+-
..||.|-+-||..||-+-.||...|.|-+-||-+-.|-+-||-+-|-+-|.||-+-||.|.||-+-|.|-+--+-..|-+-|..||-+-||.-+--+-|.
.-+--+-|.-+-|-+-|.|-+-|-+-|.|-+-||...||-+-.|-+-|-+--+-|.-+-|-+-||-+-.||..||...||-+--+-||-+-|.||.||..
.||.||...||-+-||.-+-|-+-|-+-.||-+-.|-+-.||...||..||.||..||-+-|-+-.||-+-.|-+-|-+-||.||-+-||-+--+--+-.
-+--+-|.-+-||.-+-||.|.|...||-+-.||-+-|..-+-|.-+-|-+--+--+-||.|.||.-+-||-+-|-+-|-+--+-.|-+-.|.||..||.
.||.|-+-||-+-|.|-+--+-|..|-+-||.-+-|.|..||-+-||-+-|.||.||-+--+--+-||.-+-||..|.|.||.||..||..|-+-.|-+-
.-+-|.|-+-.|-+-|.|.||-+--+-||-+-.||.-+--+-||-+-.|.|-+--+-||..||.|-+-|.||-+-.|-+--+--+--+-|-+-||-+-|.
.||-+-|.||..||-+-|-+-||..||-+-||.-+-||.||-+-||..|-+-|.||-+-..-+-|.|-+--+-||-+-|..|.||.||-+-||-+-||..
-+-||-+--+--+-.|-+-|-+-|.-+-|.-+-||-+--+-||-+-|-+-|..-+-.||..||-+-.||..||-+-||...|-+--+-||.-+-||-+-.
.|-+-||..||.|..|.|..||-+-||...||-+-||.||-+-.|-+-|.|..||.|-+--+-.||-+-.|-+-||-+-|-+-||.|-+-.||.-+-||.
..||-+-|.-+-|.-+-|.-+-||-+-.|-+-||-+--+-||..|.|..-+--+--+-|.||.|-+-||-+-|.-+-|-+-||-+-|.||-+-.||.-+-
.-+-||-+-||-+-||-+-||-+-.||-+-|-+-||.||-+-|-+-|..||..||.|..-+--+-||-+-||...||..||-+-|-+--+-||-+-.||.
.||-+-||-+-||-+-||-+-||.|-+-||..|-+--+-||-+-|-+--+-|.-+-|..||..||-+-||-+-|.-+-|-+-|..||.||.-+-||-+-.
-+-||-+-.|-+-||-+-||-+--+-||-+-.|.||.|-+-||..||.||-+-||-+--+-.|-+-||-+-|-+-||-+-||..-+--+-|.||-+-||.
.|-+-.||..||-+-||-+-||..||-+-||-+--+-.||-+-|-+--+-||-+-.|.||.-+-||-+-|.|.|-+-.||-+-.||.||-+--+-|.-+-
.|.||.-+--+-||-+-||-+-|.-+-||-+-||.||-+-.|-+-||.|-+-||..|-+-.||.-+-|.|-+-|.|..-+-||-+--+-||..||..||.
-+--+-||..|-+-||-+-||-+-||.-+-||-+--+-|..|.|.-+-.||-+-|-+-||-+-|.|..-+-|-+-|..||.-+-||.|-+-.|-+--+-.
.|.||-+-|..||-+-||-+-||-+-|.||-+-|.||...-+-|..||-+-.|-+-|.-+-|-+-|..||..||-+--+-|.||-+-.||.-+-|..||.
.|-+-||-+--+-||-+-||-+-||-+--+-||.-+-|..||-+-|-+-|..|.||..||..||-+--+-|-+-||.||-+--+-||-+-.||.|..-+-
-+-|-+-.||.|-+-||-+-||-+-||..|.-+-||-+--+-||-+-|..|-+--+--+-|-+-||.||-+-|-+--+-||..||-+-|.-+--+-|.|.
.|.|.|.|-+-|.|-+-||-+-||-+-..|..|-+-.||.|-+-||.|.-+-|.||.||-+-|-+--+-||.|.|.||-+-|.-+-||..||..|-+-|.
.|-+-|-+-|-+-.||-+-||-+-.|.|-+-.|.||.-+-|.|-+--+-||.|-+--+-.||..|.||-+--+-|-+-.|-+-||.-+--+-...||-+-
-+-|-+-||..||-+-||-+-||..|-+-||-+--+-.|-+-..||.|-+--+-|.||.|-+-.|-+-.|.||-+-||..||-+-.||..|..|-+-||.
.|.|.||-+-|-+-|-+-||-+-|-+-||-+-||.||...||..-+-|.|.||.|-+--+-||-+-|..|-+-.||-+--+-.||-+-..|.-+-|-+-.
.|-+--+-|-+-|.|.|-+-||-+-||-+-||-+--+-|.-+-.||-+-|-+--+-||.|.-+-||..-+-||.-+-||.|.|-+-||.-+-||...||.
-+-|.||...|.|-+-..|-+-||.-+-||-+-||.|-+-.||-+-||-+-|.||.-+-|..||-+-.||.-+-||.-+-|-+-||-+-||-+-|..-+-
.||.-+-|..|-+-||..|.|-+-|.||-+-||-+-|.||.-+-|-+-||.|-+-|.|-+-|-+-||-+-..|-+-|.|-+-||-+-|-+-||-+-|.|.
.-+-||-+--+-||-+--+-|.|-+--+-||-+-|-+--+-||...|-+--+-|-+-|.|-+-||-+-||..|.|-+-|.||-+-||..|-+-||-+-|.
..|-+-||.||.-+-|.||-+-..||.|.-+-|.|.|.||-+-|...||.||.|.|-+-|.||-+-||-+--+-.||-+--+-||-+-|..|-+-.|-+-
..|.|-+--+-.||.|-+-.||..-+-|..||.-+-|-+-.|-+-|-+--+--+-|.|-+--+-||-+-||.||-+-.||.||-+-|-+-|..||...|.
.-+-|.||.||-+--+-|..-+-|.|-+-|-+-||-+-||..||-+-||.|.||-+-|.|.||.-+-||-+--+-|..-+--+-|.|.|-+-|-+-..|.
.||-+--+--+-||.|.|..||-+-.||-+-|-+-||.-+--+-.||-+-|-+-||-+-|-+-|.||-+-||.||...||..||.-+-|.|-+-||.-+-
-+-||..||.|.-+-|-+--+-.||-+-||...|-+-|.|.||.|-+-|-+-|-+-||-+-|-+--+-||-+--+-|-+-|.-+-||-+-|.|.-+-||.
.|-+-|.-+-|..|-+-||.||.-+-|-+-|....|-+-|-+--+-|.|.|..||-+-.|.|.||.||-+-||.|-+-|-+-||-+-||-+-|..|-+-.
.|.|-+-||-+-|..||-+--+-||.|.|-+-|..|.|-+-||.||.-+-|.-+-||..|-+--+--+-||-+-..|.|.|-+-.|-+-||-+-.|.||.
-+-.||-+-.|-+-|-+-||.|-+--+-|.|-+--+-..||-+--+-||-+-||-+-|-+-|..||.||-+-||..|-+-|.||...|-+-.||-+--+-
.||-+-||...||-+-||-+-|.||.|-+-..|..||..-+-|.||-+-||-+-||-+-||..|-+--+-|.-+--+-|-+--+-|..||.|-+-|.||.
.-+-|-+-.|-+-.||-+-|-+--+-|.||..|..-+-|.|.|-+-||-+-.|-+-.||-+--+-|..|.|..|..|...||.|-+--+--+-|.|-+-.
..||..||-+-|.|-+-|.|.||.|-+--+--+-.||-+-|-+-|-+-||...||.|-+-||.||...|-+-.|..|..|-+-.||..||.|.|-+-||.
.|-+-|-+-|.|-+-|.|-+--+-..||.||.||-+-||-+-||..|-+-.|-+--+-||-+--+-|-+-||-+--+--+-||-+-.|-+-|-+-||-+-
-+-|-+-|..-+-|.|-+-||.||..-+--+--+-|-+-.||-+-...||-+-|.||.-+-||.|-+-|.-+-|..||.||-+-||-+-|-+-|.-+-|.
.||..||...||..-+-||-+--+-..|..||.||..|.|-+-||..|-+-||.-+-..||-+-.||...||...|-+--+-||-+-|.|.||..||.|.
.-+-|-+-|-+-..||.-+-|..||..|..-+--+-.|-+-||-+--+-||-+-||..|-+-||-+-.|-+-.|-+-||.||-+-||.-+--+--+--+-
.||-+-|-+-|..-+-|.|.|..-+--+-|.||.||-+-||-+-||.||-+-|-+-|-+-||-+-||-+-||-+-||-+--+-||-+-||.||..||.|.
-+-||.|.|.|..||-+-|-+-|.|.||-+--+--+-||-+-||-+--+-|..||-+-||-+-||-+-||-+-||-+-|.||.-+-|-+--+-|.-+-|.
.|-+--+-|-+--+-.|-+-|-+-|-+-.|..|.||.-+-||-+-|.||.|.-+-.||-+-||-+-||-+-|.-+-|.|-+-.||.|.|.||-+-||-+-
..||.||-+-||.|..|.|..||-+-|..|..|-+-|.||-+-|.|-+--+-||.|-+-||-+-||-+-||..||.|-+-||-+--+-|-+-.|-+-.|.
.-+--+-||.-+-|.-+-|.-+-||..|-+--+-|-+--+-||.-+-|.||-+--+-||-+-||-+-|.-+--+--+-||-+-|.||-+-||..||..|.
.||.||-+-.||-+-||-+-||-+-|-+-|.||.|.||.||-+-||.|-+-.|.||.-+-||-+-|.|..|.||..|.-+-||.-+-||.-+--+-|-+-
-+--+-.||-+-||-+-||-+-||-+-|.|-+--+--+--+-|-+--+-|..|-+-.||.-+-|.|-+-.|-+-..|..||-+-||-+-..||.|-+-|.
.||.|.|-+-|-+-||-+-||-+-||.|-+-||.|..|..|.|.|.||..|-+-||-+-.||.|-+-||-+-||.-+-|-+-|-+-||..|-+-|.||..
.-+-|-+-|..||-+-||-+-||-+--+-||-+-|..|..|-+-|-+-|-+-||-+-||-+--+-||-+-||-+-||-+-|..||-+-|-+-|-+--+-.
..|-+-|...-+-||-+-||-+-||.||.-+-|-+--+--+-|-+-|-+-|.-+-||-+-||.||-+-||-+-|-+-.||..-+-||-+-|.|.||.||.
...||.|...||-+-||-+-||-+--+-|.|.|.|..|.||...|.|.|.|..||-+-||-+--+-|.-+-|.|.|.|-+-.||-+-.||.-+--+--+-
.|-+--+-|-+-||-+-||-+-||.||-+-|-+-|..|-+-|..|-+-|-+-|-+-||-+-||.||..||.|-+-|-+-||-+-||.|-+-||.||.||.
-+-|..|-+-|-+-.|-+-.|-+--+-.|-+-|-+--+-|-+--+-|-+-|-+-|.-+-|.-+--+--+--+-|-+-|.-+-|-+--+-|-+--+--+-.
.|......|...|....|....|..|....|...|..|...|..|...|...|....|....|..|..|..|...|....|...|..|...|..|..|..