문제
풀이
다각형의 넓이를 구하는 공식으로 대각성분끼리 곱하고 더하면 구할 수 있다.
코드
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
int N;
long double answer = 0;
cin >> N;
vector<pair<long long, long long>> coordinate;
coordinate.resize(N);
for (int i = 0; i < N; ++i)
{
long long x, y;
cin >> x >> y;
coordinate[i] = make_pair(x, y);
}
for (int i = 1; i <= N; ++i)
{
pair<long long, long long> bef = coordinate[i - 1];
if (i == N)
{
answer += (bef.first * coordinate[0].second) - (bef.second * coordinate[0].first);
break;
}
answer += (bef.first * coordinate[i].second) - (bef.second * coordinate[i].first);
}
if (answer < 0)
{
answer *= -1;
}
answer /= 2;
answer *= 10;
answer = round(answer);
answer /= 10;
printf("%.1Lf", answer);
return 0;
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준][C++] 27172: 수 나누기 게임 (1) | 2023.10.08 |
---|---|
[백준][C++] 2467: 용액 (1) | 2023.10.07 |
[백준][C++] 13172: Σ (0) | 2023.10.05 |
[백준][C++] 2448: 별 찍기 - 11 (0) | 2023.10.04 |
[백준][C++] 11779: 최소비용 구하기 2 (0) | 2023.10.03 |