比赛 NOIP2007普及组(复现) 评测结果 AAAAAAAWAA
题目名称 守望者的逃离 最终得分 90
用户昵称 HtBest 运行时间 0.006 s
代码语言 C++ 内存使用 13.66 MiB
提交时间 2020-02-09 17:38:36
显示代码纯文本
#include<bits/stdc++.h>
int main(void) {
	freopen("escape.in","r",stdin);
	freopen("escape.out","w",stdout);
	int m=0,s=0,t=0;
	const int v=17,mp=4,tr=60;
	int sum=0,num=0,time=0;
	scanf("%d %d %d",&m,&s,&t);
	time=t;
	while(t>0) {
		while(m>=10&&sum<s&&t>0) {
			sum+=tr;
			m-=10;
			t-=1;
		}
		if (sum>s&&t>=0) {
			puts("Yes");
			printf("%d",time-t);
			break;
		} else if(t==0&&sum<s) {
			puts("No");
			printf("%d",sum);
			break;
		}
there:
		while(m<10&&t>0){
			m+=mp;
			num+=1;
		}
		if ((s-sum-v*num)<=0&&t-num>=0) {
			puts("Yes");
			printf("%d",(int)(((double)s-sum)/v+0.9999)+time-t);
			break;
		}
		if(t-num>0) {
			sum+=tr;
			m-=10;
			t=t-num-1;
			if(sum>s)
			{
				puts("Yes");
				printf("%d",time-t);
				break;
			}
			num=0;
			goto there;
		} else {
			sum+=t*v;
			t=0;
			if(sum>s)
			{
				puts("Yes");
				printf("%d",time-t);
				break;
			}
			else {
				puts("No");
				printf("%d",sum);
				break;
			}
		}
	}

}