Submission #1049946

#TimeUsernameProblemLanguageResultExecution timeMemory
1049946vjudge1Art Exhibition (JOI18_art)C++98
0 / 100
0 ms344 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct Artwork {
    long long size;
    long long value;
};

long long maximizeArtExhibition(int N, vector<Artwork>& artworks) {
    sort(artworks.begin(), artworks.end(), [](const Artwork& a, const Artwork& b) {
        return a.size < b.size;
    });

    long long maxSMinusDiff = 0;
    long long totalValue = 0;
    long long A_min = artworks[0].size;

    for (int i = 0; i < N; ++i) {
        long long A_max = artworks[i].size;
        totalValue += artworks[i].value;
        long long currentSMinusDiff = totalValue - (A_max - A_min);
        maxSMinusDiff = max(maxSMinusDiff, currentSMinusDiff);
    }

    return maxSMinusDiff;
}

int main() {
    int N;
    cin >> N;

    vector<Artwork> artworks(N);
    for (int i = 0; i < N; ++i) {
        cin >> artworks[i].size >> artworks[i].value;
    }

    long long result = maximizeArtExhibition(N, artworks);
    cout << result << endl;

    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...