Advertisement
vitormartinotti

Untitled

Aug 29th, 2024 (edited)
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. //Problema 1
  6. bool soma(int v[], int n, int x){
  7.  
  8.     int l = 1;
  9.     int r = n;
  10.  
  11.     while(l < r){
  12.  
  13.         if(v[l]+v[r] == x){
  14.             return true;
  15.         }
  16.         else if(v[l]+v[r] < x){
  17.             l++;
  18.         }
  19.         else if(v[l]+v[r] > x){
  20.             r--;
  21.         }
  22.     }
  23.     return false;
  24. }
  25.  
  26. //Problema 2
  27. int maxSum(int v[], int n, int k){
  28.  
  29.     int l = 1;
  30.     int r = k;
  31.  
  32.     //Soma da primeira janela
  33.     int max_soma = 0;
  34.     for(int i = 1; i <= k; i++){
  35.         max_soma += v[i];
  36.     }
  37.  
  38.     int soma = max_soma;
  39.  
  40.     while(r <= n){
  41.         l++;
  42.         r++;
  43.         soma += v[r] - v[l-1];
  44.         max_soma = max(max_soma, soma);
  45.     }
  46.  
  47.     return max_soma;
  48. }
  49.  
  50. //Problema 3
  51. int nSumX(int v[], int n, int x){
  52.  
  53.     int l = 1;
  54.     int r = 1;
  55.     int soma = v[1];
  56.     int resp = 0;
  57.  
  58.     while(l < n){
  59.         if(r-l > n){
  60.             soma -= v[l];
  61.             l++;
  62.         }
  63.         if(soma < x){
  64.             r++;
  65.             soma += v[r];
  66.         }
  67.         if(soma > x){
  68.             soma -=v[l];
  69.             l++;
  70.         }
  71.         if(soma == x){
  72.             resp++;
  73.             soma -=v[l];
  74.             l++;
  75.             r++;
  76.             soma += v[r];
  77.         }
  78.     }
  79.  
  80.     return resp;
  81. }
  82.  
  83. //Problema 4
  84. int maxSomaS(int v[], int n, int m){
  85.  
  86.    int l = 1;
  87.    int r = 1;
  88.    int soma = 0;
  89.  
  90.    int resp = 0;
  91.    while(l <= n){
  92.       while(r <= n && soma + v[r] < m){
  93.          soma += v[r];
  94.          r++
  95.       }
  96.       resp = max(resp, soma);
  97.       soma -= v[l];
  98.       l++;
  99.    }
  100.  
  101.    return resp;
  102. }
  103.  
  104.  
  105. int main() {
  106.  
  107. }
  108.  
  109.  
  110.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement