이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <vector>
#define pll pair < long long, long long >
#include <algorithm>
using namespace std;
vector < pll > v;
vector < long long > sum;
int main()
{
int n;
long long x, y;
cin >> n;
sum.push_back(0);
v.push_back({0,0});
for(int i = 1 ; i <= n ; i++)
cin >> x >> y, v.push_back({x, y}),
sum.push_back(y);
sort(v.begin() + 1, v.end());
for(int i = 1 ; i <= n ; i++)
sum[i] = sum[i-1] + v[i].second;
int left = 1;
long long maxx = -(1<<30);
for(int i = 1 ; i <= n ; i++)
{
while(left < i &&
(sum[i] - sum[left-1]) - (v[i].first-v[left].first)
< (sum[i] - sum[left]) - (v[i].first-v[left+1].first) ) left++;
//cout << "AICI "<< left << ' ' << i << ' ' <<
//(sum[i] - sum[left-1]) - (v[i].first-v[left].first) << '\n';
maxx = max(maxx,
(sum[i] - sum[left-1]) - (v[i].first-v[left].first));
/*if(i < n)
maxx = max(maxx,
(sum[i+1] - sum[left-1]) - (v[i+1].first-v[left-1].first) );*/
}
cout << maxx << '\n';
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... |