#include "closing.h"
#include<bits/stdc++.h>
using namespace std;
const int N = 3010;
long long l[N], r[N];
int n;
long long v[N];
int x, y;
long long k;
int max_score(int NN, int X, int Y, long long K,
std::vector<int> U, std::vector<int> V, std::vector<int> W){
n = NN;
x = X;
y = Y;
k = K;
for(int i = x-1;i >= 0;i--){
l[i] = l[i+1] + (long long) W[i];
}
for(int i = x+1;i < n;i++){
l[i] = l[i-1] + (long long) W[i-1];
}
for(int i = y-1;i >= 0;i--){
r[i] = r[i+1] + (long long) W[i];
}
for(int i = y+1;i < n;i++){
r[i] = r[i-1] + (long long) W[i-1];
}
int ans = 0;
for(int r2 = 0;r2 < n;r2++){
int l1 = 0, r1 = n-1;
long long sum = 0;
for(int i = 0;i < n;i++){
sum += l[i];
v[i] = l[i];
}
while(sum > k){
if(l1 == r1){
sum = 0;
l1++;
}
else{
long long v1 = (l1 == x ? -1e16 : v[l1]);
long long v2 = (r1 == x ? -1e16 : v[r1]);
if(v1 <= v2){
r1--;
sum -= v2;
}
else{
l1++;
sum -= v1;
}
}
}
ans = max(ans, r1-l1+1);
long long custo = k;
for(int l2 = r2;l2 >= 0;l2--){
custo -= r[l2];
if(custo < 0)
break;
if(l1 <= l2 and l2 <= r1)
sum -= v[l2];
v[l2] = max(0LL, l[l2]-r[l2]);
if(l1 <= l2 and l2 <= r1)
sum += v[l2];
while(sum > custo){
if(l1 == r1){
sum = 0;
l1++;
}
else{
long long v1 = (l1 == x ? -1e16 : v[l1]);
long long v2 = (r1 == x ? -1e16 : v[r1]);
if(v1 <= v2){
r1--;
sum -= v2;
}
else{
l1++;
sum -= v1;
}
}
}
if(ans < r1-l1+1 + r2-l2+1){
/* cout << r1 << ' ' << l1 << ' ' << r2 << ' ' << l2 << '\n';
for(int i = 0;i < n;i++)
cout << v[i] << ' ';
cout << '\n';*/
}
ans = max(ans, r1-l1+1 + r2-l2+1);
}
}
for(int i = 0;i <= n;i++){
l[i] = r[i] = v[i] = 0;
}
return ans;
}
# | 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... |
# | 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... |