되는대로 살자

[C언어 기출문제&풀이] 오버랩 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 오버랩

malu 2010. 11. 4. 23:15
프로그램 명: overlap(open problem)
제한시간: 1 초

두 사각형 좌표가 주어질 때 두 사각형이 오버랩(overlap) 되는지 아닌지를 판단하는 프로그램을 작성하시오. 변을 공유하거나 꼭지점을 공유하는 경우에도 overlap 되는 것으로 간주한다.

입력

한 줄에 4 개 씩 음이 아닌 정수 x1 y1 x2 y2 가 두 줄로 주어진다.

(x1,y1) 은 왼쪽 아래 좌표이고, (x2,y2) 은 오른쪽 위 좌표이다. 입력되는 수는 200 보다 작다.

출력

overlap 되는 경우에는 "Overlap" 아니면 "No overlap" 을 출력한다.

입출력 예

입력

1 1 2 2
2 2 5 3

출력

Overlap
풀이 : x > dx1||dx < x1||y > dy1||dy < y1 이 조건을 만족하는지 생각하여본다. 
소스코드 : 
01#include <stdio.h>  
02      
03void main(){  
04     int x,y,dx,dy;  
05     int x1,y1,dx1,dy1;  
06      
07     scanf("%d %d %d %d",&x,&y,&dx,&dy);  
08     scanf("%d %d %d %d",&x1,&y1,&dx1,&dy1);  
09      
10     if(x > dx1||dx < x1||y > dy1||dy < y1)
11         printf("No overlap");  
12     else
13         printf("Overlap");    
14}