fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 11896 (C++) 다각형
최초 업로드: 2025-10-14 00:25:54
최근 수정 시간: 2025-10-14 00:27:15
게시자: rlatjwls3333
카테고리: 백준
조회수: 10
# [Silver V] 다각형 [문제 링크](https://www.acmicpc.net/problem/11896) ## 문제 설명 <p>승현이는 웹툰을 보는 것보다 더 생산적인 활동을 하고자 합니다. 그래서 종이에다가 아래와 같은 그림을 하나 그렸습니다.</p> <p style="text-align: center;"><img alt="" src="https://onlinejudgeimages.s3-ap-northeast-1.amazonaws.com/problem/11896/1.png" style="height:215px; width:164px"></p> <p>남들과 보는 눈이 다른 승현이는 밑의 사각형 부분은 직선을 하나 그어서 모든 변을 자를 수 있다는 것을 알게 되었습니다.</p> <p style="text-align: center;"><img alt="" src="https://onlinejudgeimages.s3-ap-northeast-1.amazonaws.com/problem/11896/2.png" style="height:215px; width:204px"></p> <p>이제 무슨 이야기가 나올 지 다 아시겠지만.. 승현이는 갑자기(?) 이러한 조건을 만족하는 다각형들의 종류가 몇 가지나 될지 궁금해졌습니다.</p> <p>직선을 하나 그어서 모든 변을 자를 수 있는 n각형이 존재하는 모든 n들의 합을 구하는 프로그램을 작성하세요. 단 이러한 다각형은 무한히 존재할 것 같으니, n은 a 이상 b 이하여야 합니다.</p> ## 입력 <p>첫 번째 줄에 두 자연수 a와 b가 공백을 사이로 두고 주어집니다. (1 ≤ a ≤ b ≤ 10<sup>9</sup>)</p> ## 출력 <p>첫 번째 줄에 위에서 요구한 답을 출력합니다.</p> ## 풀이 한 직선이 다각형의 모든 변을 지나려면 n이 4 이상의 짝수여야 한다. 짝수의 합 공식을 사용하여 해결해 주었다. ``` c++ #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); long long a, b; cin >> a >> b; if(a<=2) a=3; if(b<=2) b=3; cout << (b/2)*(b/2+1)/2*2 - ((a-1)/2)*((a-1)/2+1)/2*2; } ```