N

(SWEA c++)6853. 직사각형과 점 본문

SW Expert Academy

(SWEA c++)6853. 직사각형과 점

naeunchan 2020. 11. 20. 13:48
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWhT_2HKQNADFAW_&categoryId=AWhT_2HKQNADFAW_&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

차례대로 x1, y1, x2, y2 좌표를 저장한다.

그리고 N개의 점 x, y를 입력받아 검사를 하도록 한다.

 

1. 점이 직사각형 내부에 있는 경우는 x, y가 각각 x1, y1 보다 크고(>) x2, y2 보다 작은(<) 경우

2. 점이 네 개의 변 중 하나라도 위에 있는 경우(4가지 경우)

3. 점이 사각형 외부에 있는 경우(else 사용)

 

#include <iostream>

using namespace std;

int main(void)
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int t;
    cin >> t;
    
    for(int tc = 1; tc <= t; tc++)
    {
        int x1, x2, y1, y2, N;
        int a1 = 0, a2 = 0, a3 = 0;
        
        cin >> x1 >> y1 >> x2 >> y2;
        cin >> N;
        
        for(int i = 0; i < N; i++)
        {
            int x, y;
            cin >> x >> y;
            if((x > x1 && x < x2) && (y > y1 && y < y2))
                a1++;
            else if((x == x1 && y >= y1 && y <= y2) || (x == x2 && y >= y1 && y <= y2) || (y == y1 && x >= x1 && x <= x2) || (y == y2 && x >= x1 && x <= x2))
                a2++;
            else
                a3++;
        }
        
        cout << "#" << tc << " " << a1 << " " << a2 << " " << a3 << endl;
    }
    return 0;
}
728x90
반응형