Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- m = [1,1,1,0,_,0,0,1,0,0,1,1] -> 2
- [0,0,0] -> -1 // inf
- int max_len = 0;
- int cur_len = 0;
- int ind_max = 0;
- for(int i = 0; i m.size(); ++i){
- if(m[i] == 1){
- if(cur_len > max_len){
- max_len = cur_len;
- ind_max = i;
- cur_len = 0;
- }
- else{
- ++cur_len;
- }
- }
- }
- if(cur_len > max_len) {
- max_len = cur_len;
- ind_max = i;
- cur_len = 0;
- }
- if(cur_len == m.size()){
- return -1;
- }
- int max_left = 0;
- int max_right = 0;
- while(max_left < m.size() && m[max_left] == 0) ++max_left;
- while(max_right < m.size() && m[m.size() - 1 - max_right] == 0) ++max_right;
- return max({(max_len + 1) / 2, max_left, max_right});
- -----------------------------------------
- a = [-2,-2,-2,-2,-1,0,2,3] сорт
- b = [-4,-3,-1,0,0,2,2,2,2,2,2] сорт
- x = 0
- #{(i,j) | a[i] + b[j] == x}
- long long answer = 0;
- int i = 0;
- int j = b.size() - 1;
- while(i < a.size() && b >= 0){
- if(a[i] + b[j] == x){
- int count_in_a = 1;
- int count_int_b = 1;
- while(i + 1 < a.size() && a[i + 1] == a[i]){
- count_in_a++;
- ++i;
- }
- while(j - 1 >= 0 && b[j - 1] == b[j]){
- count_in_b++;
- --j;
- }
- answer += count_in_a * count_in_b;
- ++i;
- --j;
- }
- else if(a[i] + b[j] < x){
- ++i;
- }
- else{
- --j;
- }
- }
- return answer;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement