codeforces 652 A. Gabriel and Caterpillar

A. Gabriel and Caterpillar


The 9-th grade student Gabriel noticed a caterpillar on a tree when walking around in a forest after the classes. The caterpillar was on the heighth1 cm from the ground. On the heighth2 cm (h2 > h1) on the same tree hung an apple and the caterpillar was crawling to the apple.

Gabriel is interested when the caterpillar gets the apple. He noted that the caterpillar goes up bya cm per hour by day and slips down by b cm per hour by night.

In how many days Gabriel should return to the forest to see the caterpillar get the apple. You can consider that the day starts at10 am and finishes at 10 pm. Gabriel's classes finish at2 pm. You can consider that Gabriel noticed the caterpillar just after the classes at2 pm.

Note that the forest is magic so the caterpillar can slip down under the ground and then lift to the apple.

Input

The first line contains two integers h1, h2 (1 ≤ h1 < h2 ≤ 105) — the heights of the position of the caterpillar and the apple in centimeters.

The second line contains two integers a, b (1 ≤ a, b ≤ 105) — the distance the caterpillar goes up by day and slips down by night, in centimeters per hour.

Output

Print the only integer k — the number of days Gabriel should wait to return to the forest and see the caterpillar getting the apple.

If the caterpillar can't get the apple print the only integer  - 1.

Examples
Input
10 30
2 1
Output
1
Input
10 13
1 1
Output
0
Input
10 19
1 2
Output
-1
Input
1 50
5 4
Output
1
Note

In the first example at 10 pm of the first day the caterpillar gets the height26. At 10 am of the next day it slips down to the height14. And finally at 6 pm of the same day the caterpillar gets the apple.

Note that in the last example the caterpillar was slipping down under the ground and getting the apple on the next day.


题意:一只毛毛虫从h1高度去h2高度吃苹果,白天每小时上升a厘米,晚上每小时下降b厘米,从当天下午2点开始计算,问几天能到达h2

分析:这题主要是模拟毛毛虫的上升下降过程,数据不大,不会超时,注意到毛毛虫可以下降到地底,在判断-1时需要尤其特判。

#include<cstring>
#include<cstdio>
#include<iostream>

using namespace std;

int main()
{
    int h1,h2,a,b;
    while(scanf("%d%d%d%d",&h1,&h2,&a,&b)!=EOF)
    {
        if(h1+8*a<h2&&h1+12*a-12*b<=h1)
        {
            printf("-1\n");
            continue;
        }
        if(a==b&&h1+8*a<h2)
        {
            printf("-1\n");
            continue;
        }
        int ans=0;
        while(1)
        {
            h1+=a*8;
            if(h1>=h2) break;
            h1-=b*12;
            ans++;
            h1+=a*4;
        }
        printf("%d\n",ans);
    }
    return 0;
 }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值