본문 바로가기

PS/Educational Codeforces

Educational Codeforces Round 010 A. Gabriel and Caterpillar

반응형

문제

https://codeforces.com/contest/652/problem/A

 

Problem - A - Codeforces

 

codeforces.com

 

문제요약

가브리엘 친구가 애벌레 관찰하는데 낮시간(10am~10pm)은 한시간에 a cm씩 오르고 밤시간엔 b cm씩 내려간다.

현재 h1 cm위치에 있고, h2 cm위치에 가고싶을 때 며칠 걸리는지 알아보자. 처음 시작은 2pm이다.

 

풀이

a<=b인 경우 첫날 8시간 이내로 사과까지 도달하지 못하면 절대 도달할 수 없다.

그 이외의 경우 첫날 8시간 a cm씩 올라간 후 매일 12*(a-b)씩 올라간다.

도달 가능한 날까지 측정 후 출력한다. (수식으로 간단하게 계산할 수 있는데 귀찮아서 반복문 돌렸다. 수학에 약함)

 

소스코드

#include <stdio.h>
typedef long long ll;
int main(){
    int n, m, a, b;
    scanf("%d%d%d%d",&n,&m,&a,&b);
    if(a<=b){
        if(n+(a<<3)<m) {puts("-1");return 0;}
        else{puts("0"); return 0;}
    }
    n+=a<<3;
    for(int i=0; ; ++i){
        if(n>=m) {printf("%d",i); return 0;}
        n+=12*(a-b);
    }
}
반응형