Advertisement
Ahmed_Negm

Untitled

Apr 23rd, 2022
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 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(prefix[i+k-1]-prefix[i-1]>maxi){
  42. maxi = prefix[i+k-1]-prefix[i-1];
  43. start = i,end=i+k-1;
  44. }
  45.  
  46.  
  47. }
  48. ll res =0;
  49. for(int i=1; i<=n; i++){
  50. if(slept[i] == 1 && (i<start || i>end)){
  51. res += v[i];
  52. }
  53. }
  54. cout<<res+maxi;
  55.  
  56.  
  57. }
  58.  
  59. int main(){
  60. Fast_IO();
  61. int t =1;
  62. //cin>>t;
  63. while(t--){
  64. solve();
  65. }
  66. return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement