fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 33923 (C++) 인경호 울타리 공사
최초 업로드: 2025-09-25 16:03:49
최근 수정 시간: 2025-09-25 16:03:49
게시자: rlatjwls3333
카테고리: 백준
조회수: 4
# [Bronze I] 인경호 울타리 공사 [문제 링크](https://www.acmicpc.net/problem/33923) ## 문제 설명 <p>못된 오리알 도둑이 밤마다 인경호에 몰래 침입해 인덕이들의 알을 훔쳐가기 시작했다! 못된 오리알 도둑을 막기 위해 인덕이들이 힘을 합쳐 인경호에 울타리를 설치하려 한다.</p> <p>인경호는 세로 $N$개, 가로 $M$개의 격자점으로 이루어진 직사각형 형태의 호수이며, 상하좌우로 인접한 격자점들 간의 거리는 모두 $1$로 동일하다. 인덕이들은 못된 오리알 도둑을 매우 싫어하기에, 인경호의 격자점 $4$개를 각 꼭짓점으로 하는 <strong>가장 큰 정사각형 형태</strong>로 울타리를 설치하려 한다.</p> <p>울타리 공사 예산이 충분하지 않기 때문에, 울타리는 인경호 바깥으로 이어질 수 없으며 인경호 전체를 감싸는 형태도 될 수 없다. 즉, 다음과 같이 울타리를 설치하는 작업은 울타리가 인경호 전체를 감싸기 때문에 불가능하다.</p> <p style="text-align: center;"><img alt="" src="https://upload.acmicpc.net/a3ed51b4-6da5-4528-b1e9-7ad0c56ad668/-/preview/" style="height: 100%; width: 100%; max-width: 400px;"></p> <p>인덕이들이 인경호에 울타리를 설치할 때, 설치한 울타리를 이용해 만들 수 있는 가장 큰 정사각형의 넓이를 구하시오.</p> ## 입력 <p>첫 번째 줄에 정수 $N, M$이 공백으로 구분되어 주어진다.</p> ## 출력 <p>인덕이들이 설치한 울타리를 이용해 만들 수 있는 가장 큰 정사각형의 넓이를 출력한다.</p> ## 풀이 N과 M이 다를 때는, 보다 작은 수로 정사각형을 만들면 됩니다. 반면 N과 M이 같을 때는 N x N 크기의 정사각형을 못 만드니 정사각형을 회전 시킨 모양이 최대 크기입니다. 각 모서리에서 (N-2)/2만큼 커버가 안되니 이떄의 총 면적은 (N-1)²-2(N-2)입니다. ``` c++ #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; if(n==m) cout << (n-1)*(n-1)-(n-2)*2; else cout << (int)pow(max(min(n-1, m), min(n, m-1))-1, 2); } ```