Advertisement
OriHackingTutorials

Euler18 ori c++

May 15th, 2020
1,332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.95 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <ctime>
  3. #include <iostream>
  4.  
  5. int grid[15][15] = {
  6.         {75},
  7.         {95, 64},
  8.         {17, 47, 82},
  9.         {18, 35, 87, 10},
  10.         {20, 4, 82, 47, 65},
  11.         {19, 1, 23, 75, 3, 34},
  12.         {88, 2, 77, 73, 7, 63, 67},
  13.         {99, 65, 4, 28, 6, 16, 70, 92},
  14.         {41, 41, 26, 56, 83, 40, 80, 70, 33},
  15.         {41, 48, 72, 33, 47, 32, 37, 16, 94, 29},
  16.         {53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14},
  17.         {70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57},
  18.         {91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48},
  19.         {63, 66, 4, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31},
  20.         {4, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 4, 23}
  21. };
  22.  
  23. int main() {
  24.  
  25.     int max = 0;
  26.     int tmp;
  27.    
  28.     std::clock_t start;
  29.     start = std::clock();
  30.  
  31.     for(int a = 0; a < 1; a++)
  32.         for (int b = 0; b < 2; b++)
  33.             for (int c = 0; c < 3; c++)
  34.                 for (int d = 0; d < 4; d++)
  35.                     for (int e = 0; e < 5; e++)
  36.                         for (int f = 0; f < 6; f++)
  37.                             for (int g = 0; g < 7; g++)
  38.                                 for (int h = 0; h < 8; h++)
  39.                                     for (int i = 0; i < 9; i++)
  40.                                         for (int j = 0; j < 10; j++)
  41.                                             for (int k = 0; k < 11; k++)
  42.                                                 for (int l = 0; l < 12; l++)
  43.                                                     for (int m = 0; m < 13; m++)
  44.                                                         for (int n = 0; n < 14; n++)
  45.                                                             for (int o = 0; o < 15; o++) {
  46.                                                                 if ((
  47.                                                                     (b != a + 1 && b != a) ||
  48.                                                                     (c != b + 1 && c != b) ||
  49.                                                                     (d != c + 1 && d != c) ||
  50.                                                                     (e != d + 1 && e != d) ||
  51.                                                                     (f != e + 1 && f != e) ||
  52.                                                                     (g != f + 1 && g != f) ||
  53.                                                                     (h != g + 1 && h != g) ||
  54.                                                                     (i != h + 1 && i != h) ||
  55.                                                                     (j != i + 1 && j != i) ||
  56.                                                                     (k != j + 1 && k != j) ||
  57.                                                                     (l != k + 1 && l != k) ||
  58.                                                                     (m != l + 1 && m != l) ||
  59.                                                                     (n != m + 1 && n != m) ||
  60.                                                                     (o != n + 1 && o != n)
  61.                                                                     ))
  62.                                                                     continue;
  63.                                                                 tmp = grid[0][a] + \
  64.                                                                     grid[1][b] + \
  65.                                                                     grid[2][c] + \
  66.                                                                     grid[3][d] + \
  67.                                                                     grid[4][e] + \
  68.                                                                     grid[5][f] + \
  69.                                                                     grid[6][g] + \
  70.                                                                     grid[7][h] + \
  71.                                                                     grid[8][i] + \
  72.                                                                     grid[9][j] + \
  73.                                                                     grid[10][k] + \
  74.                                                                     grid[11][l] + \
  75.                                                                     grid[12][m] + \
  76.                                                                     grid[13][n] + \
  77.                                                                     grid[14][o];
  78.                                                                 if (tmp == 1074) {
  79.                                                                     printf("yes!");
  80.                                                                 }
  81.                                                                 if (tmp > max) {
  82.                                                                     // printf("%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d\r\n", a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
  83.                                                                     max = tmp;
  84.                                                                     printf("%d (%.0f seconds elapsed, %.2f minutes)\r\n", max, (std::clock() - start) / (double)CLOCKS_PER_SEC, ((std::clock() - start) / (double)CLOCKS_PER_SEC)/60);
  85.                                                                    
  86.                                                                 }
  87.                                                             }
  88.                                                                
  89.                                                            
  90.     printf("MAX: %d\r\n", max);
  91.  
  92.     printf("Finished In:\r\n");
  93.     printf("              %.0f Seconds.\r\n", ((std::clock() - start) / (double)CLOCKS_PER_SEC));
  94.     printf("              %.2f Minutes.\r\n", ((std::clock() - start) / (double)CLOCKS_PER_SEC) / 60);
  95.     printf("              %.3f Hours.\r\n", ((std::clock() - start) / (double)CLOCKS_PER_SEC) / 60 / 60);
  96.     getchar();
  97.     return 0;
  98. }
  99.  
  100.  
  101. /*
  102. OUTPUT:
  103.  
  104. 794 (0 seconds elapsed, 0.00 minutes)
  105. 852 (0 seconds elapsed, 0.00 minutes)
  106. 855 (0 seconds elapsed, 0.00 minutes)
  107. 891 (0 seconds elapsed, 0.00 minutes)
  108. 907 (312 seconds elapsed, 5.20 minutes)
  109. 916 (312 seconds elapsed, 5.20 minutes)
  110. 934 (312 seconds elapsed, 5.20 minutes)
  111. 940 (312 seconds elapsed, 5.20 minutes)
  112. 955 (322 seconds elapsed, 5.36 minutes)
  113. 964 (322 seconds elapsed, 5.36 minutes)
  114. 982 (322 seconds elapsed, 5.36 minutes)
  115. 988 (322 seconds elapsed, 5.36 minutes)
  116. 994 (941 seconds elapsed, 15.69 minutes)
  117. 1012 (941 seconds elapsed, 15.69 minutes)
  118. 1018 (941 seconds elapsed, 15.69 minutes)
  119. 1022 (1121 seconds elapsed, 18.68 minutes)
  120. 1037 (1130 seconds elapsed, 18.83 minutes)
  121. **** (1130 seconds elapsed, 18.83 minutes)
  122. **** (1130 seconds elapsed, 18.83 minutes)
  123. **** (1130 seconds elapsed, 18.83 minutes)
  124. **** (3286 seconds elapsed, 54.77 minutes)
  125.  
  126. MAX: ****
  127. Finished In:
  128.               3587 Seconds.
  129.               59.78 Minutes.
  130.               0.996 Hours.
  131. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement