记录编号 107009 评测结果 AAAAAAAAAA
题目名称 [NOIP 2007]守望者的逃离 最终得分 100
用户昵称 Gravatarraywzy 是否通过 通过
代码语言 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;
}