Max_Leb

Untitled

May 31st, 2022
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.87 KB | None | 0 0
  1. #include <iostream>
  2.  
  3.  
  4. std::string **table;
  5.  
  6.  
  7. void compare(std::string *a, std::string *b) {
  8.     if ((*a).length() == (*b).length()) {
  9.         if (*a > *b) {
  10.             *a = *b;
  11.         } else  {
  12.             *b = *a;
  13.         }
  14.     } else if ((*a).length() > (*b).length()) {
  15.         *a = *b;
  16.     }
  17. }
  18.  
  19. void one(int i, int j){
  20.     if(j - 1 >= 0 && i - 2 >= 0 && table[j][i] == "."){
  21.         if (table[j - 1][i - 2] != ".") {
  22.             table[j][i] = table[j - 1][i - 2] + "1";
  23.         }
  24.     } else if(j - 1 >= 0 && i - 2 >= 0 && table[j][i] != "."){
  25.         if (table[j - 1][i - 2] != ".") {
  26.             std::string tmp = table[j - 1][i - 2] + "1";
  27.             compare(&table[j][i], &tmp);
  28.         }
  29.     }
  30. }
  31.  
  32. void two(int i, int j){
  33.     if(j - 1 >= 0 && i - 3 >= 0 && table[j][i] == "."){
  34.         if (table[j - 1][i - 3] != ".") {
  35.             table[j][i] = table[j - 1][i - 3] + "2";
  36.         }
  37.     } else if(j - 1 >= 0 && i - 3 >= 0 && table[j][i] != "."){
  38.         if (table[j - 1][i - 3] != ".") {
  39.             std::string tmp = table[j - 1][i - 3] + "2";
  40.             compare(&table[j][i], &tmp);
  41.         }
  42.     }
  43. }
  44.  
  45. void three(int i, int j){
  46.     if(j - 2 >= 0 && i - 2 >= 0 && table[j][i] == "."){
  47.         if (table[j - 2][i - 2] != ".") {
  48.             table[j][i] = table[j - 2][i - 2] + "3";
  49.         }
  50.     } else if(j - 2 >= 0 && i - 2 >= 0 && table[j][i] != "."){
  51.         if (table[j - 2][i - 2] != ".") {
  52.             std::string tmp = table[j - 2][i - 2] + "3";
  53.             compare(&table[j][i], &tmp);
  54.         }
  55.     }
  56. }
  57.  
  58. void four(int i, int j){
  59.     if(j - 0 >= 0 && i - 4 >= 0 && table[j][i] == "."){
  60.         if (table[j - 0][i - 4] != ".") {
  61.             table[j][i] = table[j - 0][i - 4] + "4";
  62.         }
  63.     } else if(j - 0 >= 0 && i - 4 >= 0 && table[j][i] != "."){
  64.         if (table[j - 0][i - 4] != ".") {
  65.             std::string tmp = table[j - 0][i - 4] + "4";
  66.             compare(&table[j][i], &tmp);
  67.         }
  68.     }
  69. }
  70.  
  71. void five(int i, int j){
  72.     if(j - 0 >= 0 && i - 5 >= 0 && table[j][i] == "."){
  73.         if (table[j - 0][i - 5] != ".") {
  74.             table[j][i] = table[j - 0][i - 5] + "5";
  75.         }
  76.     } else if(j - 0 >= 0 && i - 5 >= 0 && table[j][i] != "."){
  77.         if (table[j - 0][i - 5] != ".") {
  78.             std::string tmp = table[j - 0][i - 5] + "5";
  79.             compare(&table[j][i], &tmp);
  80.         }
  81.     }
  82. }
  83.  
  84. void six(int i, int j){
  85.     if(j - 1 >= 0 && i - 4 >= 0 && table[j][i] == "."){
  86.         if (table[j - 1][i - 4] != ".") {
  87.             table[j][i] = table[j - 1][i - 4] + "6";
  88.         }
  89.     } else if(j - 1 >= 0 && i - 4 >= 0 && table[j][i] != "."){
  90.         if (table[j - 1][i - 4] != ".") {
  91.             std::string tmp = table[j - 1][i - 4] + "6";
  92.             compare(&table[j][i], &tmp);
  93.         }
  94.     }
  95. }
  96.  
  97. void zero(int i, int j){
  98.     if(j - 0 >= 0 && i - 6 >= 0 && table[j][i] == "."){
  99.         if (table[j - 0][i - 6] != ".") {
  100.             table[j][i] = table[j - 0][i - 6] + "0";
  101.         }
  102.     } else if(j - 0 >= 0 && i - 6 >= 0 && table[j][i] != "."){
  103.         if (table[j - 0][i - 6] != ".") {
  104.             std::string tmp = table[j - 0][i - 6] + "0";
  105.             compare(&table[j][i], &tmp);
  106.         }
  107.     }
  108. }
  109.  
  110. void eight(int i, int j){
  111.     if(j - 0 >= 0 && i - 7 >= 0 && table[j][i] == "."){
  112.         if (table[j - 0][i - 7] != ".") {
  113.             table[j][i] = table[j - 0][i - 4] + "8";
  114.         }
  115.     } else if(j - 0 >= 0 && i - 7 >= 0 && table[j][i] != "."){
  116.         if (table[j - 0][i - 7] != ".") {
  117.             std::string tmp = table[j - 0][i - 7] + "8";
  118.             compare(&table[j][i], &tmp);
  119.         }
  120.     }
  121. }
  122.  
  123. int main() {
  124.  
  125.     int n, m;
  126.     std::cin >> n >> m;
  127.     table = new std::string *[m + 1];
  128.     for (int i = 0; i < m + 1; ++i) {
  129.         table[i] = new std::string[n + 1];
  130.     }
  131.  
  132.     for (int i = 0; i < m + 1; i++) {
  133.         for (int j = 0; j < n + 1; j++) {
  134.             table[i][j] = ".";
  135.         }
  136.     }
  137.  
  138.     if (m >= 1 && n >= 2) {
  139.         table[1][2] = "1";
  140.     }
  141.     if (m >= 2 && n >= 2) {
  142.         table[2][2] = "3";
  143.     }
  144.     if (m >= 1 && n >= 3) {
  145.         table[1][3] = "2";
  146.     }
  147.     if (m >= 0 && n >= 4) {
  148.         table[0][4] = "4";
  149.     }
  150.     if (m >= 0 && n >= 5) {
  151.         table[0][5] = "5";
  152.     }
  153.     if (m >= 1 && n >= 4) {
  154.         table[1][4] = "6";
  155.     }
  156.     if (m >= 0 && n >= 7) {
  157.         table[0][7] = "8";
  158.     }
  159.  
  160.     for (int i = 0; i < m + 1; ++i) {
  161.         for (int j = 0; j < n + 1; ++j) {
  162.             one(j, i);
  163.             two(j, i);
  164.             three(j, i);
  165.             four(j, i);
  166.             five(j, i);
  167.             six(j, i);
  168.             zero(j, i);
  169.             eight(j, i);
  170.         }
  171.     }
  172.  
  173.     if (table[m][n] != ".") {
  174.         std::cout << table[m][n];
  175.     } else {
  176.         std::cout << "Wrong";
  177.     }
  178.  
  179.     for (int i = 0; i < m + 1; ++i) {
  180.         delete[] table[i];
  181.     }
  182.     delete[] table;
  183.  
  184.     return 0;
  185. }
Advertisement
Add Comment
Please, Sign In to add comment