Submission #1267957

#TimeUsernameProblemLanguageResultExecution timeMemory
1267957gry3125Portal (BOI24_portal)C++20
1 / 100
47 ms1860 KiB
#include <bits/stdc++.h>
#define pb push_back
#define ll long long int
#define all(v) (v).begin(),(v).end()
#define fi first 
#define se second
using namespace std;

int main() {
    int n; cin >> n;
    vector<pair<ll,ll>> p;
    p.resize(n);
    for (int i = 0; i < n; i++) {
        cin >> p[i].fi >> p[i].se;
    }
    if (n <= 2) {cout << -1; return 0;}
    if (p[0].fi == p[1].fi && p[1].fi == p[2].fi) {cout << -1; return 0;}
    if (p[0].se == p[1].se && p[1].se == p[2].se) {cout << -1; return 0;}
    if (p[0].fi != p[1].fi && p[1].fi != p[2].fi && p[2].fi != p[0].fi) {
        if ((p[0].fi-p[2].fi)*(p[0].se-p[1].se) == (p[0].fi-p[1].fi)*(p[0].se-p[2].se)) {
            cout << -1; return 0;
        }
    	if (p[0].se != p[1].se && p[1].se != p[2].se && p[2].se != p[0].se) {
    		cout << -1; return 0;
    	}
    }
    ll ans = 0;
    if (p[0].fi == p[1].fi) {
    	ans = max(ans, abs((p[0].se-p[1].se)*(p[2].fi-p[0].fi)));
    }
    if (p[1].fi == p[2].fi) {
    	ans = max(ans, abs((p[1].se-p[2].se)*(p[0].fi-p[1].fi)));
    }
    if (p[1].fi == p[2].fi) {
    	ans = max(ans, abs((p[2].se-p[0].se)*(p[1].fi-p[0].fi)));
    }
    if (p[0].se == p[1].se) {
    	ans = max(ans, abs((p[0].fi-p[1].fi)*(p[2].se-p[0].se)));
    }
    if (p[1].se == p[2].se) {
    	ans = max(ans, abs((p[1].fi-p[2].fi)*(p[0].se-p[1].se)));
    }
    if (p[1].se == p[2].se) {
    	ans = max(ans, abs((p[2].fi-p[0].fi)*(p[1].se-p[0].se)));
    }
    cout << ans;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...