Submission

Status:
[PPPPP][PPP][PPPPPPP]

Score: 100

User: detectives_conan

Problemset: 05.Two Towers

Language: cpp

Time: 0.036 second

Submitted On: 2025-04-01 11:34:24

/*
    Author : detective conan
    Problem : two tower
    Created : 01/04/2025 11:14 UTC+7
*/
#include <bits/stdc++.h>
#define int long long
#define FOR(i, s, t) for(int i = s; i <= t; ++i)
#define rep(i, s, t) for(int i = s; i >= t; --i)
#define HAVE_TESTCASE false
#define vec vector
#define pil pair<int, i64>
#define pli pair<i64, int>
#define pii pair<int, int>
#define pll pair<i64, i64>
#define tiil tuple<int, int, i64>
#define tlii tuple<i64, int, int>
#define all(a) a.begin(), a.end()
#define great(a) a, vec<a>, greater<a>
#define lbv(a, m) lower_bound(all(a), m) - a.begin()
#define ubv(a, m) upper_bound(all(a), m) - a.begin()
#define pb push_back
#define ppb pop_back
#define pf push_front
#define ppf pop_front
#define eb emplace_back
#define F first
#define S second
#define conan cin.tie(nullptr)->sync_with_stdio(false)
#define ANS(n, s) cout << n << s

using namespace std;
using u8 = uint8_t;
using u32 = unsigned;
using i64 = int64_t;
using u64 = uint64_t;

const int MAX_N = 2e5 + 10;
pii tower[MAX_N];
int n, h[MAX_N], p[MAX_N], ans;

void solve(){
    cin >> n;
    FOR(i, 1, n) cin >> tower[i].F >> tower[i].S;
    sort(tower + 1, tower + 1 + n);
    FOR(i, 1, n) h[i] = tower[i].S, p[i] = tower[i].F;
    int l = 1, r = n;
    while(l < r){
        ans = max(abs(p[l] - p[r])*min(h[l], h[r]), ans);
        if(h[l] < h[r]) l++;
        else r--;
    }
    ANS(ans, '\n');
}

int32_t main(){
    conan;
    int t = 1;
    if(HAVE_TESTCASE) cin >> t;
    while(t--) solve();
}