Skip to content
Snippets Groups Projects
Commit c403fbed authored by Bruno Freitas Tissei's avatar Bruno Freitas Tissei
Browse files

Add URI1932

parent c96e1374
No related branches found
No related tags found
No related merge requests found
#include <bits/stdc++.h>
#define MAX 201010
#define EPS 1e-6
#define MOD 1000000007
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3f
#define fi first
#define se second
#define sz size()
#define pb push_back
#define ende '\n'
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define mset(x, y) memset(&x, (y), sizeof(x))
using namespace std;
typedef long long ll;
typedef pair<int,int> ii;
int n, c;
int v[MAX];
int dp[MAX][2];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> c;
for (int i = 0; i < n; ++i)
cin >> v[i];
for (int i = n-1; i >= 0; --i) {
dp[i][0] = max(dp[i+1][1] - c - v[i], dp[i+1][0]);
dp[i][1] = max(dp[i+1][0] + v[i], dp[i+1][1]);
}
cout << dp[0][0] << ende;
return 0;
}
#include <bits/stdc++.h>
#define MAX 201010
#define EPS 1e-6
#define MOD 1000000007
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3f
#define fi first
#define se second
#define sz size()
#define pb push_back
#define ende '\n'
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define mset(x, y) memset(&x, (y), sizeof(x))
using namespace std;
typedef long long ll;
typedef pair<int,int> ii;
int n, c;
int v[MAX];
int dp[MAX][2];
int solve(int i, bool hold) {
if (i == n)
return 0;
if (dp[i][hold] != inf)
return dp[i][hold];
if (!hold)
return dp[i][hold] = max(solve(i + 1, true) - c - v[i],
solve(i + 1, false));
else
return dp[i][hold] = max(solve(i + 1, false) + v[i],
solve(i + 1, true));
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
mset(dp, 0x3f);
cin >> n >> c;
for (int i = 0; i < n; ++i)
cin >> v[i];
cout << solve(0, false) << ende;
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment