记录编号 |
107009 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2007]守望者的逃离 |
最终得分 |
100 |
用户昵称 |
raywzy |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.004 s |
提交时间 |
2014-06-21 18:19:34 |
内存使用 |
0.32 MiB |
显示代码纯文本
#include<fstream>
using namespace std;
ifstream fin("escape.in");
ofstream fout("escape.out");
int M,S,T;
bool flag=0;
bool woca=0;
bool K=0;
int main()
{
fin>>M>>S>>T;
int B;
int temp=M%10;//
int tem=temp;
int tim=M/10;
int ti=tim;
int s=60*tim;
int dis=s;
int i;
if(tim>=T)
{
if(s<S)
{
fout<<"No"<<endl;
fout<<60*T<<endl;
}
else
{
if(60*T>=S)//证明可以出去
{
for(i=T;i>=0;i--)
if(60*i<S)
break;
fout<<"Yes"<<endl;
fout<<i+1<<endl;
}
else
{
fout<<"No"<<endl;
fout<<60*T<<endl;
}
}
}
else
{
if(s>=S)
{
for(i=tim;i>=0;i--)
if(60*i<S)
break;
fout<<"Yes"<<endl;
fout<<i+1<<endl;
}
else
{
for(i=tim+1;i<=T;i++)
{
tem+=4;
if(tem>=10)
{
if(i+1<=T)
{
dis+=60;
i++;
woca=1;
}
tem%=10;
}
if(dis>S)
{
K=1;
break;
}
if(tem<=1)
B=4;
if(tem>=2&&tem<6)
B=3;
if(tem>=6)
B=2;
if(17*B>=S-dis)
{
flag=1;
break;
}
}
if(K==1)
{
fout<<"Yes"<<endl;
fout<<i<<endl;
return 0;
}
if(dis<S&&flag==0)
{
fout<<"No"<<endl;
fout<<dis+tem/4*17<<endl;
return 0;
}
if(flag==1)
{
if((B-4)*17>=S-dis)
{
fout<<"Yes"<<endl;
fout<<i+B-4<<endl;
return 0;
}
if((B-3)*17>=S-dis)
{
fout<<"Yes"<<endl;
fout<<i+B-3<<endl;
return 0;
}
if((B-2)*17>=S-dis)
{
fout<<"Yes"<<endl;
fout<<i+B-2<<endl;
return 0;
}
if((B-1)*17>=S-dis)
{
fout<<"Yes"<<endl;
fout<<i+B-1<<endl;
return 0;
}
else
{
fout<<"Yes"<<endl;
fout<<i+B<<endl;
return 0;
}
}
}
}
return 0;
}