본문 바로가기
전공공부/코딩테스트

(c++) 백준 "2477. 참외밭"

by 시아나 2022. 5. 12.

https://www.acmicpc.net/problem/2477

 

2477번: 참외밭

첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지

www.acmicpc.net


#include <iostream>
#include <vector>

using namespace std;
int K;
vector<pair<int, int>> list;

void solution() {
	list.insert(list.end(),list.begin(),list.end());
	for (int i = 0; i < list.size() - 3; i++) {
		if (list[i].first == list[i + 2].first && list[i + 1].first == list[i + 3].first) {
			int n = list[i].second + list[i + 2].second;
			int m = list[i + 1].second + list[i + 3].second;
			int minus = list[i + 1].second * list[i + 2].second;
			cout << (n * m - minus) * K << endl;
			return;
		}
	}
}

int main() {
	cin >> K;
	for (int i = 0; i < 6; i++) {
		int n, m; cin >> n >> m;
		list.push_back({ n,m });
	}
	solution();
	return 0;
}