Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

코드와이

[BAEKJOON] 2564경비원 본문

acmicpc

[BAEKJOON] 2564경비원

코드와이 2021. 2. 26. 10:36

 

문제링크

www.acmicpc.net/problem/2564

 

2564번: 경비원

첫째 줄에 블록의 가로의 길이와 세로의 길이가 차례로 주어진다. 둘째 줄에 상점의 개수가 주어진다. 블록의 가로의 길이와 세로의 길이, 상점의 개수는 모두 100이하의 자연수이다. 이어 한 줄

www.acmicpc.net

 

package acmicpc.Silver1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class 경비원 {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int w = Integer.parseInt(st.nextToken());
		int h = Integer.parseInt(st.nextToken());
		
		int d = 0;
		int x = 0;
		int n = Integer.parseInt(br.readLine());
		int[] arr = new int[n+1];
		int l = (h + w) * 2;
		for(int i = 0 ; i <= n; i++) {
			st = new StringTokenizer(br.readLine());
			d = Integer.parseInt(st.nextToken());
			x = Integer.parseInt(st.nextToken());
			if(d == 1) arr[i] = x;
			else if(d == 2) arr[i] = (w + h + ( w - x ));
			else if(d == 3) arr[i] = (2*w + h+(h - x));
			else arr[i] = w + x;
		}
		int ans = 0;
		
		for(int i = 0 ; i < n ; i++) {
			int tmp = Math.abs(arr[n] - arr[i]);
			ans += Math.min(tmp, l - tmp);
		}
		System.out.println(ans);
		
		
	}
}