Advertisement
Georgiy031

Untitled

Dec 29th, 2020
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. m = [1,1,1,0,_,0,0,1,0,0,1,1] -> 2
  2.  
  3. [0,0,0] -> -1 // inf
  4.  
  5. int max_len = 0;
  6. int cur_len = 0;
  7. int ind_max = 0;
  8.  
  9. for(int i = 0; i m.size(); ++i){
  10.     if(m[i] == 1){
  11.         if(cur_len > max_len){
  12.             max_len = cur_len;
  13.             ind_max = i;
  14.             cur_len = 0;
  15.         }
  16.         else{
  17.             ++cur_len;
  18.         }
  19.     }
  20. }
  21. if(cur_len > max_len) {
  22.     max_len = cur_len;
  23.     ind_max = i;
  24.     cur_len = 0;
  25. }
  26.  
  27. if(cur_len == m.size()){
  28.     return -1;
  29. }
  30.  
  31. int max_left = 0;
  32. int max_right = 0;
  33. while(max_left < m.size() && m[max_left] == 0) ++max_left;
  34. while(max_right < m.size() && m[m.size() - 1 - max_right] == 0) ++max_right;
  35.  
  36. return max({(max_len + 1) / 2, max_left, max_right});
  37.  
  38.  
  39.  
  40. -----------------------------------------
  41.  
  42. a = [-2,-2,-2,-2,-1,0,2,3] сорт
  43. b = [-4,-3,-1,0,0,2,2,2,2,2,2] сорт
  44. x = 0
  45.  
  46. #{(i,j) | a[i] + b[j] == x}
  47.  
  48. long long answer = 0;
  49.  
  50. int i = 0;
  51. int j = b.size() - 1;
  52.  
  53. while(i < a.size() && b >= 0){
  54.     if(a[i] + b[j] == x){
  55.         int count_in_a = 1;
  56.         int count_int_b = 1;
  57.         while(i + 1 < a.size() && a[i + 1] == a[i]){
  58.             count_in_a++;
  59.             ++i;
  60.         }
  61.         while(j - 1 >= 0 && b[j - 1] == b[j]){
  62.             count_in_b++;
  63.             --j;
  64.         }
  65.        
  66.         answer += count_in_a * count_in_b;
  67.         ++i;
  68.         --j;
  69.     }
  70.     else if(a[i] + b[j] < x){
  71.         ++i;
  72.     }
  73.     else{
  74.         --j;
  75.     }
  76. }
  77.  
  78. return answer;
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement