avukas

VratiPeriod

Mar 6th, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. bool DaLiJeSadrzan(std::vector<int> v, std::vector<int> obj)
  5. {
  6.     int ind = 0; // za obj
  7.  
  8.     for (unsigned int i = 0; i < v.size(); i ++)
  9.     {
  10.         if (ind == obj.size()) ind = 0;
  11.         if (v[i] != obj[ind ++]) return false;
  12.     }
  13.     return true;
  14. }
  15.  
  16. int VratiPeriod(std::vector<int> v)
  17. {
  18.     int maksimalniPeriod = (int)v.size() / 2;
  19.     for (int i = 0; i < maksimalniPeriod; i ++)
  20.     {
  21.         std::vector<int> osnovniPeriod(i + 1);
  22.  
  23.         for (int j = 0; j <= i; j ++)
  24.             osnovniPeriod[j] = v[j];
  25.  
  26.         if (DaLiJeSadrzan(v, osnovniPeriod))
  27.             return osnovniPeriod.size();
  28.     }
  29.  
  30.     return 0;
  31. }
  32.  
  33. int main()
  34. {
  35.     std::vector<int> v {1,2,1,1,2,1,1,2,1};
  36.  
  37.  
  38.         std::cout << VratiPeriod(v) <<std::endl;
  39.  
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment