Skip to content

Commit c49c270

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent 804fdb6 commit c49c270

File tree

1 file changed

+31
-31
lines changed

1 file changed

+31
-31
lines changed

content/6_Advanced/Lagrange.mdx

+31-31
Original file line numberDiff line numberDiff line change
@@ -122,37 +122,37 @@ using namespace std;
122122

123123
const ll INF = (ll)300000 * 1000000000;
124124

125-
int main(){
126-
int n, k;
127-
cin >> n >> k;
128-
129-
int a[n + 1];
130-
for (int i = 1; i <= n; i++) cin >> a[i];
131-
132-
auto solveLambda = [&](ll lmb){
133-
pair<ll, ll> dp[n + 1][2];
134-
135-
dp[0][0] = {0, 0};
136-
dp[0][1] = {-INF, 0};
137-
138-
for (int i = 1; i <= n; i++){
139-
dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]);
140-
141-
dp[i][1] = max(
142-
make_pair(dp[i - 1][0].first + a[i] - lmb, dp[i - 1][0].second + 1),
143-
make_pair(dp[i - 1][1].first + a[i], dp[i - 1][1].second)
144-
);
145-
}
146-
return max(dp[n][0], dp[n][1]);
147-
};
148-
149-
ll lo = 0, hi = INF;
150-
151-
while (lo < hi){
152-
ll mid = (lo + hi) / 2;
153-
solveLambda(mid).second <= k ? hi = mid : lo = mid + 1;
154-
}
155-
cout << solveLambda(lo).first + lo * k << endl;
125+
int main() {
126+
int n, k;
127+
cin >> n >> k;
128+
129+
int a[n + 1];
130+
for (int i = 1; i <= n; i++) cin >> a[i];
131+
132+
auto solveLambda = [&](ll lmb) {
133+
pair<ll, ll> dp[n + 1][2];
134+
135+
dp[0][0] = {0, 0};
136+
dp[0][1] = {-INF, 0};
137+
138+
for (int i = 1; i <= n; i++) {
139+
dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]);
140+
141+
dp[i][1] =
142+
max(make_pair(dp[i - 1][0].first + a[i] - lmb,
143+
dp[i - 1][0].second + 1),
144+
make_pair(dp[i - 1][1].first + a[i], dp[i - 1][1].second));
145+
}
146+
return max(dp[n][0], dp[n][1]);
147+
};
148+
149+
ll lo = 0, hi = INF;
150+
151+
while (lo < hi) {
152+
ll mid = (lo + hi) / 2;
153+
solveLambda(mid).second <= k ? hi = mid : lo = mid + 1;
154+
}
155+
cout << solveLambda(lo).first + lo * k << endl;
156156
}
157157
```
158158

0 commit comments

Comments
 (0)