Submission #1131026

#TimeUsernameProblemLanguageResultExecution timeMemory
1131026dibambooFeast (NOI19_feast)C++20
100 / 100
121 ms9844 KiB
/* author : Dinmukhammed ^_^ */ #include <map> #include <set> #include <unordered_set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #include <string> #include <bitset> #include <cstdio> #include <limits> #include <vector> #include <climits> #include <cstring> #include <cstdlib> #include <fstream> #include <numeric> #include <sstream> #include <cassert> #include <iomanip> #include <iostream> #include <algorithm> #include <stdio.h> #include <fstream> #include <unordered_map> #include <complex> using namespace std; #define F first #define S second #define sz size() #define ll long long #define ld long double const int N = 4e5+3; const ll inf = 1e18; ll a[N] , p[N]; pair <ll , int> dp[N]; int n; pair <ll , int> get(ll lam){ dp[0] = {0ll , (int)0}; set <pair <ll , int>> st; pair <ll , int> mx = dp[0]; for(int i = 1; i <= n; i++){ mx = max({dp[i - 1].F - p[i] , dp[i - 1].S} , mx); dp[i] = mx; dp[i].F += lam + p[i]; dp[i].S--; dp[i] = max(dp[i - 1] , dp[i]); mx = max({dp[i].F - p[i] , dp[i].S} , mx); } dp[n].S = -dp[n].S; return dp[n]; } void Main(){ ll k; cin >> n >> k; for(int i = 1; i <= n; i++){ cin >> a[i]; p[i] = p[i - 1] + a[i]; } ll l = -(ll)1e18 , r = 0 , res = -(ll)1e18; while(r >= l){ ll md = (r + l) / 2; if(get(md).S <= k){ res = md; l = md + 1; } else r = md - 1; } cout << get(res).F - res * k; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); int tt = 1; // cin >> tt; while(tt--) Main(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...