백준

2991)사나운 개

포도몽2 2019. 2. 24. 19:53

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


개1은 시간 a동안 짖고 b동안 쉬며 개2는 시간 c동안 짖고 d동안 쉰다.


개들에게도 짖는 주기가 있다.


이 주기는 펑크없이 쭉 반복되기 때문에 배달원이 도착할 때 이 주기 안에 있을 수 밖에 없다.


배달원이 도착한 시간을 t라 할 때 주기 안에 배달원이 도착한 시점(h라 하자)은 h = t%(a+b)이다.


0<h<=a이면 배달원은 개가 짖는 시간에 도착한 것이고 a<h<=b이면 개가 자는 시간에 도착한 것이다.


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
#include<stdio.h>
 
int main() {
    int a, b, c, d;
    int arrive[3];
    int cntBark = 0;
    int point;
 
    scanf("%d %d %d %d",&a,&b,&c,&d);
    for (int i = 0; i < 3;i++) {
        scanf("%d",&arrive[i]);
    }
 
    for (int i = 0; i < 3;i++) {
        point = arrive[i] % (a+b);
        if (point > 0 && point <= a) cntBark++;
 
        point = arrive[i] % (c+d);
        if (point > 0 && point <= c) cntBark++;
 
        printf("%d\n",cntBark);
        cntBark = 0;
    }
    
    return 0;
}
cs