题目:http://codeforces.com/contest/652/problem/A
代码:
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int h1,h2;
int a,b;
scanf("%d%d",&h1,&h2);
scanf("%d%d",&a,&b);
int temp;
int i;
if(h1+8*a<h2&&b>=a)
{
printf("-1\n");
return 0;
}
for(i=0; 1; i++)
{
if(i==0)
{
if(8*a+h1>h2)
{
printf("0\n");
return 0;
}
if(8*a+h1==h2)
{
printf("1\n");
return 0;
}
//if(8*a+h1-12*b<=0)
//temp=0;
else
{
temp=8*a+h1-12*b;
//printf("%d\n",temp);
}
}
else
{
if(temp+12*a>h2)
break;
if(temp+12*a==h2)
{
//i--;
break;
}
//else if(temp+12*a-12*b<0)
//temp=0;
//else if(temp+12*a-12*b<0&&a<b)
// {
// printf("-1\n");
// return 0;
//}
else //if(temp+12*a-12*b>=0)
{
temp=temp+12*a-12*b;
//printf("%d\n",temp);
}
}
//
//printf("%d\n",temp);
}
printf("%d\n",i);
}
/*1 100
3 1*/
题目有毒,这题不按套路出牌呀。虫子还可爬到负半轴,有特殊说明吗?
卡到第9组数据始终过去,后来才知道。
代码格式不好,应该可以用数学方法算出来。