# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1179705 | pythontest | Art Exhibition (JOI18_art) | C++20 | 195 ms | 24424 KiB |
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
constexpr int N=5e5+10;
long long sum[N];
using namespace std;
int main() {
vector<pair<long long,int>> dane;
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
long long a,b;
scanf("%lld %lld",&a,&b);
dane.push_back({a,b});
}
sort(dane.begin(),dane.end());
for(int i=1;i<=n;i++) sum[i]=dane[i-1].second;
for(int i=1;i<=n;i++) sum[i]+=sum[i-1];
priority_queue<pair<long long,int>> kolejeczka;
for(int i=0;i<n;i++) kolejeczka.push({sum[i+1]-dane[i].first,i+1});
long long wyn=0;
for(int i=1;i<=n;i++){
while(kolejeczka.top().second<i){
kolejeczka.pop();
}
wyn=max(kolejeczka.top().first-sum[i-1]+dane[i-1].first,wyn);
}
printf("%lld",wyn);
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |