Submission
Status:
[P-SSS][-SS][-SSSSSS]
Score: 0
User: Pandusk
Problemset: 05.Two Towers
Language: cpp
Time: 0.004 second
Submitted On: 2025-04-17 11:19:06
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
const int mxN = 2e5+5;
int n;
pair<int,int> towers[mxN];
set<int> s;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for(int i = 0; i < n; ++i) {
cin >> towers[i].second >> towers[i].first;
}
sort(towers, towers+n);
ll ans = 0;
s.emplace(towers[n-1].second);
for(int i = n-2; i >= 0; --i) {
auto [h, pos] = towers[i];
int l = *s.begin();
int r = *s.rbegin();
// cout << l << ' ' << r << '\n';
ll mx = max(1ll * (pos-l) * h, 1ll * (r-pos));
ans = max(ans, mx);
s.emplace(pos);
}
cout << ans;
}