Submission #768671

#TimeUsernameProblemLanguageResultExecution timeMemory
768671LinkedArrayArt Exhibition (JOI18_art)C++17
0 / 100
1 ms212 KiB
#include <bits/stdc++.h>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int n;
    
    cin >> n;
    pair<int, int> artwork[n + 1];
    for(int i = 1; i <= n; i++){
        cin >> artwork[i].first >> artwork[i].second;
        // First = Size; Second = Value;
    }
    sort(artwork, artwork + n + 1); // Sort the vector
    int ans = 0, totalValue = 0, restTillTotalValue = 0;
    for(int i = 1; i <= n; i++){
        // Keep the current value sum
        // We also keep a variable restTillTotalValue (size - lastSum(lastSum which can be written as currentSum - currentValue));
        ans = max(ans, (totalValue = totalValue + artwork[i].second) - (artwork[i].first - (restTillTotalValue = max(restTillTotalValue, 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 - (restTillTotalValue = max(restTillTotalValue, 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...