david12457899

Number Spiral

May 15th, 2021
432
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "bits/stdc++.h"
  2.  
  3. //const int max = 1000000007;
  4. //const int mod = 1000000;
  5.  
  6. void print2dVector(std::vector<std::vector<int>> grid);
  7.  
  8. int main()
  9. {
  10.     long long int t;
  11.     long long int x, y;
  12.  
  13.     std::cin >> t;
  14.  
  15.     std::vector<std::vector<long long int>> tests(t, std::vector<long long int>(2));
  16.  
  17.  
  18.     for (long long int i = 0; i < t; i++)
  19.     {
  20.         std::cin >> tests[i][0] >> tests[i][1];
  21.     }
  22.  
  23.  
  24.     long long int layer;
  25.     long long int biggest, smallest;
  26.  
  27.     for (long long int i = 0; i < t; i++)
  28.     {
  29.         layer = std::max(tests[i][0], tests[i][1]);
  30.         biggest = layer * layer;
  31.         smallest = (layer - 1) * (layer - 1) + 1;
  32.  
  33.         y = tests[i][0];
  34.         x = tests[i][1];
  35.  
  36.         if (layer % 2 == 0)
  37.         {
  38.             if (x == layer)
  39.             {
  40.                 std::cout << smallest + y - 1 << std::endl;
  41.             }
  42.             else
  43.             {
  44.                 std::cout << biggest - x + 1 << std::endl;
  45.             }
  46.         }
  47.         else
  48.         {
  49.             if (y == layer)
  50.             {
  51.                 std::cout << smallest + x - 1 << std::endl;
  52.             }
  53.             else
  54.             {
  55.                 std::cout << biggest - y + 1 << std::endl;
  56.             }
  57.         }
  58.     }
  59.  
  60.    
  61.  
  62.     return 0;
  63.  
  64. }
  65.  
  66. void print2dVector(std::vector<std::vector<int>> grid)
  67. {
  68.     for (int i = 0; i < grid.size(); i++)
  69.     {
  70.         for (int j = 0; j < grid.size(); j++)
  71.         {
  72.             std::cout << grid[i][j] << " ";
  73.         }
  74.         std::cout << "\n";
  75.     }
  76. }
RAW Paste Data