Submission #958723

#TimeUsernameProblemLanguageResultExecution timeMemory
958723aegHomecoming (BOI18_homecoming)C++17
100 / 100
92 ms55612 KiB
#include <bits/stdc++.h> #include "homecoming.h" using namespace std; long long solve(int n, int k, int *a, int *b){ long long cur, cost, nextcost, maxi = INT_MIN, maxj = INT_MIN; cost = accumulate(b, b + k, 0ll); maxi = a[0] - cost; cur = a[0] - cost; for(int i = 1; i < n; i++){ cost -= b[i - 1]; if(i + k - 1 < n) nextcost = b[k + i - 1]; else nextcost = 0; cur = max(cur + a[i] - nextcost, maxi + a[i] - (cost + nextcost)); maxi = max(maxi, cur); cost += nextcost; } cost = accumulate(b, b + k, 0ll); maxj = max(0ll, a[0] - cost); cur = a[0] - cost; for(int i = 1; i < n; i++){ cost -= b[i - 1]; if(i + k - 1 < n) nextcost = b[k + i - 1]; else nextcost = b[k + i - 1 - n]; cur = max(cur + a[i] - nextcost, maxj + a[i] - (cost + nextcost)); maxj = max(maxj, cur); cost += nextcost; } maxi = max(maxi, maxj); return maxi; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...