sym111sym 2013-11-06 17:33:20
点我顶贴
收藏
删除
枚举休息时间数。。。。。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,m,s,t,ans=300005,p=0,max=0,m1,t1,k;
scanf("%d%d%d",&m,&s,&t);
for(i=0;i<t;i++)
{
m1=m+4*i;
t1=i;
if(t1+m1/10>t)
{
if((t-t1)*60>max)
{
k=i;
max=(t-t1)*60;
}
continue;
}
else if(m1/10*60>=s)
{
p=1;
if(t1+m1/10<ans)
{
k=i;
ans=t1+m1/10;
}
continue;
}
else
{
t1+=m1/10;
if(t1+(s-m1/10*60-1)/17+1>t)
{
if(m1/10*60+(t-t1)*17>max)
{
k=i;
max=(t-t1)*17+m1/10*60;
}
continue;
}
else
{
p=1;
if(t1+(s-m1/10*60-1)/17+1<ans)
{
k=i;
ans=t1+(s-m1/10*60-1)/17+1;
}
continue;
}
}
}
if(p==1)
printf("Yes\n%d",ans);
else printf("No\n%d",max);
return 0;
}