#include <bits/stdc++.h>
#define int long long
using namespace std;
const int oo = LLONG_MAX;
const int nmax = 3e5;
int n, k;
int c[nmax + 5], s[nmax + 5];
int r[nmax + 5], poz[nmax + 5];
int cost(int st, int dr)
{
int rez = 0;
vector<int> v;
for(int i=st;i<=dr;i++)
{
rez -= c[i];
v.push_back(s[i]);
}
sort(v.begin(), v.end(), greater<int>());
for(int i=0;i<k;i++)
{
rez += v[i];
}
return rez;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
#ifdef home
freopen("nr.in","r",stdin);
freopen("nr.out","w",stdout);
#endif // home
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>c[i];
}
for(int i=1;i<=n;i++)
{
cin>>s[i];
}
for(int i=1;i+k-1<=n;i++)
{
r[i] = -oo;
}
for(int i=1;i+k-1<=n;i++)
{
for(int j=i+k-1;j<=n;j++)
{
if(cost(i, j) > r[i])
{
poz[i] = j;
r[i] = cost(i, j);
}
}
}
int rez = -oo;
for(int i=1;i+k-1<=n;i++)
{
rez = max(rez, r[i]);
}
cout<<rez<<'\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |