본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 8716 : Pole

반응형

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

 

8716번: Pole

W pierwszym wierszu wejścia znajdują się 4 liczby całkowite: x1, y1, x2, y2, oznaczające odpowiednio współrzędną x - ową i y - ową lewego górnego rogu i współrzędną x - ową i y - ową prawego dolnego rogu pierwszego prostokąta. W drug

www.acmicpc.net

여러가지를 고려해야하는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

좌표들을 선언해 입력을 받습니다.

📔 풀이과정

4곳의 직사각형 구석 부분이 겹칠 수 있습니다. 이를 고려해 작성해야합니다. 아예 안 겹칠 때는 0을 출력해야합니다.

📔 정답출력

겹치는 부분의 가로길이와 세로길이를 구해 곱해준 답을 출력해줍니다.


📕 Code

#include <iostream>
#include <cmath>
#define ll long long
using namespace std;

ll x1, y11, x2, y2, x3, y3, x4, y4;

int main(){
    cin >> x1 >> y11 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;

    if(x2 < x3 || x1 > x4 || y11 < y4 || y2 > y3) cout << 0;
    
    else {
        ll lx = max(x1, x3);
        ll rx = min(x2, x4);
        ll ry = max(y2, y4);
        ll ly = min(y11, y3);
        cout << abs((rx - lx) * (ry - ly));
    }
}

'Algorithm > Implementation' 카테고리의 다른 글

(C++) - 백준(BOJ) 9286 : Gradabase  (0) 2022.02.15
(C++) - 백준(BOJ) 9063 : 대지  (0) 2022.02.14
(C++) - 백준(BOJ) 1408 : 24  (0) 2022.02.09
(C++) - 백준(BOJ) 8932 : 7종 경기  (1) 2022.02.07
(C++) - 백준(BOJ) 17614 : 369  (2) 2022.02.06