40分蒟蒻求助
查看原帖
40分蒟蒻求助
750535
Trubiacy_楼主2023/10/4 10:02
#include <bits/stdc++.h>
#define int long long
using namespace std;

const int N=3e5+9;
//int T;
int m,s,t;
int dp[N];

signed main(){
//	scanf("%lld",&T);
//	while(T--){
//		int n;
//		scanf("%lld",&n);
//	}
	scanf("%lld%lld%lld",&m,&s,&t);
	for(int i=1;i<=t;i++){
		if(m>=10){
			dp[i]=dp[i-1]+60;
			m-=10;
		}
		else if(m>=6){
			if(i>=2&&dp[i-1]+17<dp[i-2]+60){
				dp[i]=dp[i-2]+60;
				m-=6;
			}
			else dp[i]=dp[i-1]+17;
		}
		else if(m>=2){
			if(i>=3&&dp[i-1]+17<dp[i-3]+60){
				dp[i]=dp[i-3]+60;
				m-=2;
			}
			else dp[i]=dp[i-1]+17;
		}
		else if(m>0){
			if(i>=4&&dp[i-1]+17<dp[i-4]+60){
				dp[i]=dp[i-4]+60;
				m+=2;
			}
			else dp[i]=dp[i-1]+17;
		}
		else dp[i]=dp[i-1]+17;
//		cout<<i<<" "<<dp[i]<<endl;
	}
	if(dp[t]>=s){
		printf("Yes\n");
		int i;
		for(i=1;i<=t;i++){
			if(dp[i]>=s) break;
		}
		printf("%lld\n",i);
	}
	else printf("No\n%lld\n",dp[t]);
	return 0;
}


2023/10/4 10:02
加载中...