Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- std::string **table;
- void compare(std::string *a, std::string *b) {
- if ((*a).length() == (*b).length()) {
- if (*a > *b) {
- *a = *b;
- } else {
- *b = *a;
- }
- } else if ((*a).length() > (*b).length()) {
- *a = *b;
- }
- }
- void one(int i, int j){
- if(j - 1 >= 0 && i - 2 >= 0 && table[j][i] == "."){
- if (table[j - 1][i - 2] != ".") {
- table[j][i] = table[j - 1][i - 2] + "1";
- }
- } else if(j - 1 >= 0 && i - 2 >= 0 && table[j][i] != "."){
- if (table[j - 1][i - 2] != ".") {
- std::string tmp = table[j - 1][i - 2] + "1";
- compare(&table[j][i], &tmp);
- }
- }
- }
- void two(int i, int j){
- if(j - 1 >= 0 && i - 3 >= 0 && table[j][i] == "."){
- if (table[j - 1][i - 3] != ".") {
- table[j][i] = table[j - 1][i - 3] + "2";
- }
- } else if(j - 1 >= 0 && i - 3 >= 0 && table[j][i] != "."){
- if (table[j - 1][i - 3] != ".") {
- std::string tmp = table[j - 1][i - 3] + "2";
- compare(&table[j][i], &tmp);
- }
- }
- }
- void three(int i, int j){
- if(j - 2 >= 0 && i - 2 >= 0 && table[j][i] == "."){
- if (table[j - 2][i - 2] != ".") {
- table[j][i] = table[j - 2][i - 2] + "3";
- }
- } else if(j - 2 >= 0 && i - 2 >= 0 && table[j][i] != "."){
- if (table[j - 2][i - 2] != ".") {
- std::string tmp = table[j - 2][i - 2] + "3";
- compare(&table[j][i], &tmp);
- }
- }
- }
- void four(int i, int j){
- if(j - 0 >= 0 && i - 4 >= 0 && table[j][i] == "."){
- if (table[j - 0][i - 4] != ".") {
- table[j][i] = table[j - 0][i - 4] + "4";
- }
- } else if(j - 0 >= 0 && i - 4 >= 0 && table[j][i] != "."){
- if (table[j - 0][i - 4] != ".") {
- std::string tmp = table[j - 0][i - 4] + "4";
- compare(&table[j][i], &tmp);
- }
- }
- }
- void five(int i, int j){
- if(j - 0 >= 0 && i - 5 >= 0 && table[j][i] == "."){
- if (table[j - 0][i - 5] != ".") {
- table[j][i] = table[j - 0][i - 5] + "5";
- }
- } else if(j - 0 >= 0 && i - 5 >= 0 && table[j][i] != "."){
- if (table[j - 0][i - 5] != ".") {
- std::string tmp = table[j - 0][i - 5] + "5";
- compare(&table[j][i], &tmp);
- }
- }
- }
- void six(int i, int j){
- if(j - 1 >= 0 && i - 4 >= 0 && table[j][i] == "."){
- if (table[j - 1][i - 4] != ".") {
- table[j][i] = table[j - 1][i - 4] + "6";
- }
- } else if(j - 1 >= 0 && i - 4 >= 0 && table[j][i] != "."){
- if (table[j - 1][i - 4] != ".") {
- std::string tmp = table[j - 1][i - 4] + "6";
- compare(&table[j][i], &tmp);
- }
- }
- }
- void zero(int i, int j){
- if(j - 0 >= 0 && i - 6 >= 0 && table[j][i] == "."){
- if (table[j - 0][i - 6] != ".") {
- table[j][i] = table[j - 0][i - 6] + "0";
- }
- } else if(j - 0 >= 0 && i - 6 >= 0 && table[j][i] != "."){
- if (table[j - 0][i - 6] != ".") {
- std::string tmp = table[j - 0][i - 6] + "0";
- compare(&table[j][i], &tmp);
- }
- }
- }
- void eight(int i, int j){
- if(j - 0 >= 0 && i - 7 >= 0 && table[j][i] == "."){
- if (table[j - 0][i - 7] != ".") {
- table[j][i] = table[j - 0][i - 4] + "8";
- }
- } else if(j - 0 >= 0 && i - 7 >= 0 && table[j][i] != "."){
- if (table[j - 0][i - 7] != ".") {
- std::string tmp = table[j - 0][i - 7] + "8";
- compare(&table[j][i], &tmp);
- }
- }
- }
- int main() {
- int n, m;
- std::cin >> n >> m;
- table = new std::string *[m + 1];
- for (int i = 0; i < m + 1; ++i) {
- table[i] = new std::string[n + 1];
- }
- for (int i = 0; i < m + 1; i++) {
- for (int j = 0; j < n + 1; j++) {
- table[i][j] = ".";
- }
- }
- if (m >= 1 && n >= 2) {
- table[1][2] = "1";
- }
- if (m >= 2 && n >= 2) {
- table[2][2] = "3";
- }
- if (m >= 1 && n >= 3) {
- table[1][3] = "2";
- }
- if (m >= 0 && n >= 4) {
- table[0][4] = "4";
- }
- if (m >= 0 && n >= 5) {
- table[0][5] = "5";
- }
- if (m >= 1 && n >= 4) {
- table[1][4] = "6";
- }
- if (m >= 0 && n >= 7) {
- table[0][7] = "8";
- }
- for (int i = 0; i < m + 1; ++i) {
- for (int j = 0; j < n + 1; ++j) {
- one(j, i);
- two(j, i);
- three(j, i);
- four(j, i);
- five(j, i);
- six(j, i);
- zero(j, i);
- eight(j, i);
- }
- }
- if (table[m][n] != ".") {
- std::cout << table[m][n];
- } else {
- std::cout << "Wrong";
- }
- for (int i = 0; i < m + 1; ++i) {
- delete[] table[i];
- }
- delete[] table;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment