This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define lop(i,a,b) for(ll i = a; i < b; i++)
#define alop(i,v) for(auto i: v)
#define ll long long
#define endl "\n"
//#define ll int
#define yes "YES"
#define no "NO"
#define elif else if
#define sp ' '
#define cor(d) (d == 1 ? "yes":"no")
#define all(v) v.begin(),v.end()
#define subst(s,i,j) s.substr(i,i+j-1);
#define pb push_back
int mod = 1e9 + 7;
using namespace std;
ll fpow(ll n, ll p){
if(p == 0) return 1;
if(p == 1) return n;
ll res = 1;
if(p%2){
res *= n;
p--;
}
ll pn = fpow(n, p/2);
res *= pn * pn;
return res;
}
int main(){
ll n, t1, t2; cin >> n;
ll arr[n];
vector<pair<int,int>> v, m;
lop(i,0,n){
cin >> t1 >> t2;
v.pb({t1,t2});
}
sort(all(v));
int i = 0;
alop(it,v){
if(i == 0) arr[0] = it.second;
else arr[i] = it.second + arr[i-1];
i++;
}
ll mx = -1e9;
for(int i = 1; i <= n; i++){
for(int j = 0; j < n-i; j++){
ll sum;
if(j == 0) sum = arr[i+j];
else sum = arr[i+j] - arr[j-1];
mx = max(mx, sum - (v[i+j].first - v[j].first));
}
}
mx = max(mx, arr[n-1] - (v[n-1].first - v[0].first));
cout << mx;
return 0;
}
# | 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... |