Task: | Polygon area |
Sender: | hungdojan |
Submission time: | 2024-11-11 16:29:34 +0200 |
Language: | C++ (C++17) |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.00 s | details |
#2 | ACCEPTED | 0.00 s | details |
#3 | ACCEPTED | 0.00 s | details |
Code
#include <bits/stdc++.h> using namespace std; #define I_2D(row, col, width) ((row) * (width) + (col)) #define PRINT_ARR(arr, n) \ do { \ for (int i = 0; i < n; i++) { \ cout << arr[i] << " "; \ } \ cout << "\n"; \ } while (0) #define PRINT_VEC_ARR(v, n) \ do { \ for (int i = 0; i < n; i++) { \ cout << i << ": "; \ for (auto item : v[i]) { \ cout << item << " "; \ } \ cout << endl; \ } \ } while (0) #define endl '\n'; typedef long long ll; typedef complex<ll> P; #define X real() #define Y imag() #define CP(a, b) ((conj(a) * b).Y) int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; P arr[n]; ll x, y; for (int i = 0; i < n; i++) { cin >> x >> y; arr[i] = {x, y}; } ll sum = 0; for (int i = 0; i < n; i++) { sum += (arr[i].X * arr[(i+1) % n].Y - arr[i].Y * arr[(i+1) % n].X); } cout << abs(sum) << endl; return 0; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
100 -7 -19 91 77 100 100 64 60 ... |
correct output |
---|
43582 |
user output |
---|
43582 |
Test 2
Verdict: ACCEPTED
input |
---|
1000 365625896 -113418831 278762563 38777445 250367343 -96991975 175866909 -129766978 ... |
correct output |
---|
4053466653883387139 |
user output |
---|
4053466653883387139 |
Test 3
Verdict: ACCEPTED
input |
---|
4 -1000000000 -1000000000 -1000000000 1000000000 1000000000 1000000000 1000000000 -1000000000 |
correct output |
---|
8000000000000000000 |
user output |
---|
8000000000000000000 |