Submission #483986

# Submission time Handle Problem Language Result Execution time Memory
483986 2021-11-01T18:43:16 Z ak2006 Art Exhibition (JOI18_art) C++14
0 / 100
0 ms 204 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vb = vector<bool>;
using vvb = vector<vb>;
using vi = vector<int>;
using vvi = vector<vi>;
using vl = vector<ll>;
using vvl = vector<vl>;
using vc = vector<char>;
using vvc = vector<vc>;
using vs = vector<string>;
const ll mod = 1e9 + 7,inf = 1e18;
#define pb push_back
#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
void setIO()
{
    fast;
}
int main()
{
    setIO();
    int n;
    cin>>n;
    vvl a(n + 1,vl(2));
    for (int i = 1;i<=n;i++)cin>>a[i][0]>>a[i][1];
    sort(a.begin() + 1,a.end());
    vl pre(n + 1),dp(n + 1);
    ll ans = 0;
    for (int i = 1;i<=n;i++)pre[i] = pre[i - 1] + a[i][1];
    multiset<ll>s;
    for (int i = 1;i<=n;i++){
        dp[i] = pre[i] - a[i][0] + a[1][0];
        if (!s.empty()){
            dp[i] = max(dp[i],pre[i] - a[i][0] + *(--s.end()));
        }
        ans = max(ans,dp[i]);
        // for (int j = i - 1;j>=0;j--){
        //     dp[i] = max(dp[i],pre[i] - pre[j] - a[i][0] + a[j + 1][0]);
        //     ans = max(ans,dp[i]);
        // }
        if (i != n)s.insert(-pre[i] + a[i + 1][1]);
    }
    cout<<ans;
    return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -