样例都过不了。。。
查看原帖
样例都过不了。。。
964645
pies_0x楼主2023/11/11 17:07
#include<bits/stdc++.h>
using namespace std;

int m,s,t,dp[100000005][2];

int main()
{
	scanf("%d%d%d",&m,&s,&t);
	dp[0][2]=m;
	for(int i=1;i<=s;++i)
	{
		if(i<60)dp[i][1]=dp[i-17][1]+1,dp[i][2]=dp[i-17][2];
		else if(dp[i-60][2]<10)
		{
			if(dp[i-60][1]+ceil((10-dp[i-60][2])*1.0/4)+1<dp[i-17][1]+1)
			{
				dp[i-60][2]=ceil((10-dp[i-60][2])*1.0/4)*4-10;
				dp[i][1]=dp[i-60][1]+1;
			}
			else dp[i][1]=dp[i-17][1]+1,dp[i][2]=dp[i-17][2];
		}
		else dp[i][1]=dp[i-60][1]+1,dp[i][2]=dp[i-60][2]-10;
	}
	if(dp[s][1]>t)
	{
		printf("No\n");
		int k=s;
		while(dp[k][1]>t)--k;
		printf("%d",dp[k][1]);
	}
	else printf("Yes\n%d",dp[s][1]);
	return 0;
}
2023/11/11 17:07
加载中...