#include #include #include #include #include using namespace std; using i32 = int; using u32 = unsigned int; using i64 = long long; using u64 = unsigned long long; #define rep(i,n) for(int i=0; i<(int)(n); i++) const i64 INF = 1001001001001001001; using Modint = atcoder::static_modint<998244353>; int main(){ int N; cin >> N; vector X(N), Y(N); rep(i,N) cin >> X[i] >> Y[i]; i64 ans = 0; rep(i,N) rep(j,i){ i64 dx = X[j] - X[i]; i64 dy = Y[j] - Y[i]; i64 l = 0, r = 0; rep(a,N){ i64 f = (X[a] - X[i]) * dy - (Y[a] - Y[i]) * dx; l = min(l, f); r = max(r, f); ans = max(ans, (r-l)); } } cout << ans << endl; return 0; } struct ios_do_not_sync{ ios_do_not_sync(){ ios::sync_with_stdio(false); cin.tie(nullptr); } } ios_do_not_sync_instance;