Advertisement
Manioc

nhonhoooooooooooo

Jul 17th, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.84 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define MAX 100007
  3. #define INF -1000000007
  4.  
  5. using namespace std;
  6. int n, l, r;
  7. int arr[MAX], flag[MAX], ans[MAX];
  8.  
  9. void build(){
  10.     int resp = INF;
  11.     for(int i = 0; i < n; i++){
  12.         int sum = arr[i], cnt = flag[i];
  13.         ans[i] = INF;
  14.         for(int j = i+1; j < n; j++){
  15.             if( cnt >= l && cnt <= r) ans[i] = max(ans[i], sum);
  16.             sum += arr[j];
  17.             cnt += flag[j];
  18.             if (cnt > r) break;
  19.         }
  20.         if( cnt >= l && cnt <= r) ans[i] = max(ans[i], sum);
  21.         resp = max(ans[i], resp);
  22.     }
  23.     if(resp == INF) printf("%d\n", 0);
  24.     else printf("%d\n", resp);
  25. }
  26. int main(){
  27.     scanf("%d %d %d", &n, &l, &r);
  28.     for(int i = 0; i < n; i++) scanf("%d", &arr[i]);
  29.     for(int i = 0; i < n; i++) scanf("%d", &flag[i]);
  30.     build();
  31.     return 0;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement