Submission #418040

#TimeUsernameProblemLanguageResultExecution timeMemory
418040oofsizelargeArt Exhibition (JOI18_art)C++14
0 / 100
1 ms236 KiB
#include <iostream> #include <algorithm> #include <vector> using namespace std; struct Artwork { long long size; int value; bool operator < (const Artwork& other) const { return size < other.size; } }; int main() { int n; cin >> n; vector < Artwork > gallery(n + 1); for (int i = 1; i <= n; ++i) { cin >> gallery[i].size >> gallery[i].value; } sort(gallery.begin(), gallery.end()); vector < long long > valuePartialSums(n + 1); for (int i = 1; i <= n; ++i) { valuePartialSums[i] = valuePartialSums[i - 1] + gallery[i].value; } vector < long long > suffixMax(n + 2); for (int i = n; i > 0; --i) { suffixMax[i] = max(suffixMax[i + 1], valuePartialSums[i] - gallery[i].size); } long long ans = 0LL; for (int i = 1; i <= n; ++i) { ans = max(ans, suffixMax[i] + gallery[i].size - valuePartialSums[i - 1]); } cout << ans << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...