2011-12-26 09:07:10
地址:http://acm.hdu.edu.cn/showproblem.php?pid=1302
题意:有个蜗牛爬墙。墙高H。一开始每天白天能爬U,晚上滑下来D。之后因为疲劳,每天能爬的高度都比前一天减少U*F%。问何时能离开墙(爬过或跌下来)。
mark:直接模拟。
代码:
# include <stdio.h>
int h, u, d, f ;
int gao()
{
double a = 0, b = u, c = 1.0*f/100.0 * u ;
int days = 1 ;
while (1)
{
// printf ("%d %.2lf ", days, a) ;
// printf ("%.2lf ", b) ;
a += b ;
// printf ("%.2lf ", a) ;
if (a > h) return days ;
a -= d ;
// printf ("%.2lf\n", a) ;
if (a < 0) return -days ;
b -= c ;
if (b < 0) b = 0 ;
days++ ;
}
return 0 ;
}
int main ()
{
int ans ;
while (~scanf ("%d %d %d %d", &h, &u, &d, &f) && h)
{
ans = gao() ;
if (ans > 0)
printf ("success on day %d\n", ans) ;
else
printf ("failure on day %d\n", -ans) ;
}
return 0 ;
}