Submission #1290521

#TimeUsernameProblemLanguageResultExecution timeMemory
1290521opituArt Exhibition (JOI18_art)C++20
100 / 100
453 ms16072 KiB
#include <bits/stdc++.h>
#define int long long
#define iamaperson int main() {\
preprocess();\
int t = 1; while (t--) solve();\
}
using namespace std;

int INF = 9e18+23;

void preprocess() {} // just in case!!!!1

void solve() {
    int n; cin >> n;
    vector<array<int, 2>> x(n); for (auto &[a, b] : x) cin >> a >> b;
    vector<array<int, 2>> dp(1+n, {-INF-1, -INF-1});
    sort(x.begin(), x.end());
    dp[n][0] = -INF;
    dp[n][1] = 0;
    for (int i = n-1; i >= 0; --i) {
        if (i != n-1) {
            dp[i][0] = max(dp[i][0], dp[i+1][1]+x[i][0]+x[i][1]);
            dp[i][1] = max(dp[i][1], dp[i+1][1]+x[i][1]);
        }
        dp[i][0] = max(dp[i][0], dp[i+1][0]);
        dp[i][0] = max(dp[i][0], x[i][1]);
        dp[i][1] = max(dp[i][1], x[i][1]-x[i][0]);
    }
    cout << dp[0][0];
}

#undef int

iamaperson
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...