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;

}