GastonFontenla

Untitled

Sep 30th, 2018
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     int tc;
  11.     cin >> tc;
  12.     while(tc--)
  13.     {
  14.         int n, k;
  15.         cin >> n >> k;
  16.         if(k == 0)
  17.         {
  18.             for(int i=1; i<=n; i++)
  19.                 cout << i << " ";
  20.         }
  21.         else
  22.         {
  23.             if(n%2)
  24.             {
  25.                 cout << -1;
  26.             }
  27.             else if((n%k == 0) && (n/k)%2 == 0)
  28.             {
  29.                 vector <vector <int> > m(n/k, vector <int> (k));
  30.  
  31.                 int p = 1;
  32.  
  33.                 for(int i=0; i<m.size(); i++)
  34.                     for(int j=0; j<m[i].size(); j++, p++)
  35.                         m[i][j] = p;
  36.  
  37.                 for(int i=0; i<m.size(); i+=2)
  38.                     swap(m[i], m[i+1]);
  39.  
  40.                 for(int i=0; i<m.size(); i++)
  41.                     for(int j=0; j<m[i].size(); j++)
  42.                         cout << m[i][j] << " ";
  43.             }
  44.             else
  45.             {
  46.                 cout << -1;
  47.             }
  48.         }
  49.         cout << endl;
  50.     }
  51.     return 0;
  52. }
  53.  
  54.  
  55. /**
  56. //OBSERVAR PATRONES
  57. int checkear(vector <int> v)
  58. {
  59.     int p = abs(v[0]-1);
  60.     for(int i=1; i<v.size(); i++)
  61.     {
  62.         if(abs(v[i]-(i+1)) != p)
  63.         {
  64.             return -1;
  65.         }
  66.     }
  67.     return p;
  68. }
  69.  
  70. void generarPermutaciones(int n)
  71. {
  72.     vector <int> v(n);
  73.     for(int i=0; i<n; i++)
  74.         v[i] = i+1;
  75.  
  76.     vector <int> k = v;
  77.  
  78.     next_permutation(v.begin(), v.end());
  79.  
  80.     while(v != k)
  81.     {
  82.         int res = checkear(v);
  83.         if(res != -1)
  84.         {
  85.             for(int i=0; i<n; i++)
  86.             {
  87.                 cout << v[i] << " ";
  88.             }
  89.             cout << ", " << res << endl;
  90.         }
  91.         next_permutation(v.begin(), v.end());
  92.     }
  93.  
  94.     int res = checkear(v);
  95.         if(res != -1)
  96.         {
  97.             for(int i=0; i<n; i++)
  98.             {
  99.                 cout << v[i] << " ";
  100.             }
  101.             cout << ", " << res << endl;
  102.         }
  103. }
  104. */
Advertisement
Add Comment
Please, Sign In to add comment