Advertisement
STANAANDREY

Tpb3 22/1/2020

Jan 22nd, 2020
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #define NMAX 100
  5. int n, k, v[NMAX];
  6.  
  7. void Citeste()
  8. {
  9.     cin >> n >> k;
  10.     for (int i = 0; i < n; i++)
  11.         cin >> v[i];
  12. }
  13.  
  14. int Cub(int x)
  15. {
  16.     int p, f = 2;
  17.     while (x > 1)
  18.     {
  19.         p = 0;
  20.         while (x % f == 0)
  21.         {
  22.             x /= f;
  23.             p++;
  24.         }
  25.         if (p % 3)
  26.             return 0;
  27.         f++;
  28.     }
  29.     return 1;
  30. }
  31.  
  32. int Poz(int a[], int n, int k)
  33. {
  34.     if (n == k)
  35.         return 0;
  36.  
  37.     int num = 0, maxNum = 0, p, solP;
  38.     for (p = 0; p < k; p++)
  39.         if (Cub(a[p]))
  40.             num++;
  41.  
  42.     if (num > maxNum)
  43.     {
  44.         if (num == k)
  45.             return 0;
  46.         maxNum = num;
  47.         solP = p - k;
  48.     }
  49.  
  50.     while (p < n)
  51.     {
  52.         if (Cub(a[p - k]))
  53.             num--;
  54.  
  55.         if (Cub(a[p]))
  56.             num++;
  57.  
  58.         if (num > maxNum)
  59.         {
  60.             if (num == k)
  61.                 return p - k + 1;
  62.             maxNum = num;
  63.             solP = p - k + 1;
  64.         }
  65.         p++;
  66.     }
  67.  
  68.     return solP;
  69. }
  70.  
  71. void Scrie(int a[], int k, int p)
  72. {
  73.     for (int i = p; i < p + k; i++)
  74.         cout << a[i] << ' ';
  75. }
  76.  
  77. int main()
  78. {
  79.     Citeste();
  80.     Scrie(v, k, Poz(v, n, k));
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement