70分求助 wa#5#7#9
查看原帖
70分求助 wa#5#7#9
863501
404744496xh楼主2024/5/28 16:58
#include <bits/stdc++.h>
using namespace std;
const int MAXt = 3*1e5+5;
const int MAXm = 1e3+5;
int m,s,t,ans=-1;
int dp[MAXt][2];
int main()
{
    cin>>m>>s>>t;
    dp[0][0]=0;
    dp[0][1]=m;
    for(int i=1;i<=t;i++)
    {
        if(dp[i-1][1]>=10){
            dp[i][0]=dp[i-1][0]+60;
            dp[i][1]=dp[i-1][1]-10;
        }
        else{
            if(dp[i-2][1]<10 && dp[i-2][1]+4>=10 && i>=2){
                dp[i][0]=dp[i-2][0]+60;
                dp[i][1]=dp[i-2][1]+4-10;
            }else if(dp[i-3][1]<10 && dp[i-3][1]+8>=10 && i>=3){
                dp[i][0]=dp[i-3][0]+60;
                dp[i][1]=dp[i-3][1]+8-10;
            }else if(dp[i-4][1]<10 && i>=4){
                dp[i][0]=dp[i-4][0]+60;
                dp[i][1]=dp[i-4][1]+12-10;
            }
            else
            {
                dp[i][0]=dp[i-1][0]+17;
                dp[i][1]=dp[i-1][1];
            }
        }
        if(dp[i][0]>=s){
            cout<<"Yes"<<endl<<i;
            return 0;
        }
    }
    cout<<"No"<<endl<<dp[t][0];
    return 0;
}

2024/5/28 16:58
加载中...