fork(3) download
  1. #include <cstdio>
  2.  
  3. int mat [250] [250], sablon [5] [5];
  4. int n;
  5.  
  6. int powe (int a, int b)
  7. {
  8. int i, x = 1;
  9. for (i = 1; i <= b; ++ i)
  10. x *= a;
  11. return x;
  12. }
  13.  
  14. void fill_my_matrix (int xstsus, int ystsus, int xdrjos, int ydrjos)
  15. {
  16. int lsqb = xdrjos - xstsus + 1; //lature square big
  17. int lsqs = lsqb / n; // lsqs - lature square small
  18. int xstsusnew, ystsusnew, xdrjosnew, ydrjosnew;
  19. int i, j, j2;
  20. if (lsqb == n)
  21. {
  22. for (i = 1; i <= n; ++ i)
  23. for (j = 1; j <= n; ++ j)
  24. mat [i + xstsus - 1] [j + ystsus - 1] = sablon [i] [j];
  25. }
  26. else
  27. {
  28. for (i = 1; i <= n; ++ i)
  29. for (j = 1; j <= n; ++ j)
  30. {
  31. xstsusnew = xstsus + (i - 1) * lsqs;
  32. ystsusnew = ystsus + (j - 1) * lsqs;
  33. xdrjosnew = xstsus + i * lsqs - 1;
  34. ydrjosnew = ystsus + j * lsqs - 1;
  35. if (sablon [i] [j] == 1)
  36. {
  37. for (; xstsusnew <= xdrjosnew; ++ xstsusnew)
  38. {
  39. for (j2 = ystsusnew; j2 <= ydrjosnew; ++ j2)
  40. {
  41. mat [xstsusnew] [j2] = 1;
  42. }
  43. }
  44. }
  45. else
  46. fill_my_matrix (xstsusnew, ystsusnew, xdrjosnew, ydrjosnew);
  47. }
  48. }
  49. }
  50.  
  51. int main ()
  52. {
  53. int k, i, j, xdrjos;
  54. char x;
  55.  
  56. scanf ("%d%d", &n, &k);
  57. for (i = 1; i <= n; ++ i)
  58. {
  59. scanf ("\n");
  60. for (j = 1; j <= n; ++ j)
  61. {
  62. scanf ("%c", &x);
  63. if (x == '*') sablon [i] [j] = 1;
  64. }
  65. }
  66.  
  67. xdrjos = powe (n, k);
  68. fill_my_matrix (1, 1, xdrjos, xdrjos);
  69.  
  70. for (i = 1; i <= xdrjos; ++ i)
  71. {
  72. for (j = 1; j <= xdrjos; ++ j)
  73. {
  74. if (mat [i] [j] == 0) printf (".");
  75. else printf ("*");
  76. }
  77. printf ("\n");
  78. }
  79.  
  80. }
  81.  
Runtime error #stdin #stdout 0.01s 2968KB
stdin
Standard input is empty
stdout
Standard output is empty