Advertisement
Ahmed_Negm

Untitled

Apr 23rd, 2022
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.33 KB | None | 0 0
  1. #include<iostream>
  2. #include<cmath>
  3. #include<iomanip>
  4. #include<algorithm>
  5. #include<cstdlib>
  6. #include<cstring>
  7. #include<vector>
  8. #include<utility>
  9.  
  10. #define ll long long
  11. #define sz(x) int(x.size())
  12. #define all(x) x.begin(),x.end()
  13. #define rall(s)  s.rbegin(), s.rend()
  14. #define ceill(n, m) (((n) / (m)) + ((n) % (m) ? 1 : 0))
  15. using namespace std;
  16.  
  17. void Fast_IO(){
  18.     ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  19.     #ifndef ONLINE_JUDGE
  20.         freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
  21.     #endif
  22. }
  23.  
  24.  
  25.  
  26.  
  27.  
  28. void solve(){
  29.     ll n,k; cin>>n>>k;
  30.     vector<ll>v(n+k);
  31.     vector<ll>slept(n+k);
  32.     vector<ll>prefix(n+k);
  33.     int start,end;
  34.     ll maxi = -__LONG_LONG_MAX__;
  35.     for(int i=1; i<=n;i++){
  36.         cin>>v[i];
  37.         prefix[i]=prefix[i-1]+v[i];
  38.     }
  39.     for(int i=1; i<=n; i++) cin>>slept[i];
  40.     for(int i=1; i<=n; i++){
  41.         if(slept[i]==0){
  42.             if(prefix[i+k-1]-prefix[i-1]>maxi){
  43.             maxi = prefix[i+k-1]-prefix[i-1];
  44.             start = i,end=i+k-1;
  45.             }
  46.         }
  47.  
  48.     }
  49.     ll res =0;
  50.     for(int i=1; i<=n; i++){
  51.         if(slept[i] == 1 && (i<start || i>end)){
  52.             res += v[i];
  53.         }
  54.     }
  55.     cout<<res+maxi;
  56.    
  57.  
  58. }
  59.  
  60. int main(){
  61.     Fast_IO();
  62. int t =1;
  63. //cin>>t;
  64. while(t--){
  65. solve();
  66. }
  67. return 0;
  68. }  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement