Submission #768687

#TimeUsernameProblemLanguageResultExecution timeMemory
768687LinkedArrayArt Exhibition (JOI18_art)C++17
100 / 100
151 ms20796 KiB
#include <bits/stdc++.h>
using namespace std;
 
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    long long n;
    
    cin >> n;
    pair<long long, long long> artwork[n + 1];
    for(long long i = 1; i <= n; i++){
        cin >> artwork[i].first >> artwork[i].second;
        // First = Size; Second = Value;
    }
    sort(artwork, artwork + n + 1); // Sort the vector
    long long ans = 0, totalValue = 0, restTillLastTotalValue = 0;
    for(long long i = 1; i <= n; i++){
        // Keep the current value sum
        // We also keep a variable restTillLastTotalValue (size - lastSum(lastSum which can be written as currentSum - currentValue));
        ans = max(ans, (totalValue = totalValue + artwork[i].second) - (artwork[i].first - (restTillLastTotalValue = max(restTillLastTotalValue, artwork[i].first - (totalValue - artwork[i].second)))));
    }
    cout << ans;
	return 0;
}

Compilation message (stderr)

art.cpp: In function 'int main()':
art.cpp:21:36: warning: operation on 'totalValue' may be undefined [-Wsequence-point]
   21 |         ans = max(ans, (totalValue = totalValue + artwork[i].second) - (artwork[i].first - (restTillLastTotalValue = max(restTillLastTotalValue, artwork[i].first - (totalValue - artwork[i].second)))));
      |                        ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...