반응형

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

 

15922번: 아우으 우아으이야!!

N개의 선분을 모두 그렸을 때, 수직선 위에 그어진 선분 길이의 총합을 출력한다아아어으잉에애야우아으아이아야아아아아아아이야!!!

www.acmicpc.net

 

주어진 범위는 x, y순의 오름차순으로 주어집니다.

현재 입력받은 x가, 이전에 입력받았던 y보다 작다면, 현재 입력받은 선분의 범위는 이전 범위와 겹치게 됩니다.

겹치는 부분은 제외하고 계산되도록 현재의 x를 이전의 y로 치환해줍니다.

또, 현재의 x가 현재의 y보다 크다면, 지금 입력받은 선분의 범위는 0이 되고,

다음에 입력받을 범위도 이전에 입력받은 범위에 포함될 수 있으므로, 현재의 y를 현재의 x로 치환해줍니다.

 

#include <cstdio>
int n, a, b, pa = -1e9, pb = -1e9, ans = 0;
int main() {
	scanf("%d", &n);
	while (n-- && scanf("%d %d", &a, &b)) {
		if (a < pb) {
			a = pb;
			if (a > b) b = a;
		}
		ans += b - a;
		pa = a, pb = b;
	}
	printf("%d", ans);
}
반응형

'Algorithm' 카테고리의 다른 글

백준 2352 : 반도체 설계  (0) 2021.11.17
백준 9470 : Strahler 순서  (0) 2021.11.17
백준 1726 : 로봇  (0) 2021.11.17
백준 16562 : 친구비  (0) 2021.11.17
백준 2458 : 키 순서  (0) 2021.11.17

+ Recent posts