본문 바로가기

알고리즘/C++

경비원_백준2564

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

 

2564번: 경비원

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

www.acmicpc.net

 

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int p1[102];
int p2[102];
int p3[102];
int main()
{
    int n, x, y;
    int sum = 0;
    scanf("%d%d", &x,&y);

    int r = x*2 + y*2;
    scanf("%d", &n);
    for (int i = 0; i <= n; i++) {
        scanf("%d%d", &p1[i], &p2[i]);
    }
    for (int i = 0; i <= n; i++) {
        if (p1[i] == 1) p3[i] += p2[i];
        else if (p1[i] == 2) p3[i] += (r / 2 + (x - p2[i]));
        else if (p1[i] == 3) p3[i] += (r - p2[i]);
        else if (p1[i] == 4) p3[i] += (x + p2[i]);
    }
    int l;
    for (int i = 0; i < n; i++) {
        if (p3[i] > p3[n]) l = p3[i] - p3[n];
        else l = p3[n] - p3[i];
        if (l > r / 2) l = r - l;
        sum += l;
    }
    printf("%d", sum);


    return 0;
}

'알고리즘 > C++' 카테고리의 다른 글

단어수학_백준1339  (0) 2023.08.29
이동하기_백준11048  (0) 2023.08.29
창고 다각형_백준2304  (0) 2023.08.17
햄버거분배_백준19941  (0) 2023.08.17
정올_제곱근1240  (0) 2023.08.14