# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1196941 | amanthaband | Art Exhibition (JOI18_art) | C++20 | 0 ms | 0 KiB |
#include <cmath>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
using ll = long long;
ll mod = 1000000007;
ll modpow(ll a, ll b) {
ll result = 1;
a %= mod;
while (b > 0) {
if (b % 2 == 1)
result = (result * a) % mod;
a = (a * a) % mod;
b /= 2;
}
return result;
}
ll solve(ll n,vector<pair<ll,ll>> arr){
ll mx = INT_MIN;
if(n == 2){
ll s = 0;
ll m = INT_MIN;
ll mn = INT_MAX;
for(const auto& num : arr){
s+= num.second;
m = max(m,num.first);
mn = min(mn,num.first);
}
return s - (m - mn);
}
ll mnn = INT_MAX;
ll ans = INT_MIN;
ll h = 0;
for(const auto& num : arr){
h += num.second;
mx = max(mx,num.first);
mnn = min(mnn,num.first);
ans = max(ans,h - (mx - mnn));
}
return ans;
}
int main() {
ll n;
cin>>n;
vector<pair<ll,ll>> vec(n);
for (int i = 0; i < n; i++)
{
ll k,m;
cin>>k>>m;
vec[i] = {k, m};
}
sort(vec.begin(),vec.end());
ll ans = solve(n,vec);
cout<<ans<<endl;
return 0;
}