WA60分 悬3关 求hack
查看原帖
WA60分 悬3关 求hack
1023961
Ryzen_9_9950X3D楼主2024/7/6 10:42
#include <bits/stdc++.h>
using namespace std;
#define int long long
int ans = -1145141919810;
int w[55],yyy[55];
int n,beginlevel,maxlevel;
void dfs(int u,int v)
{
    if(v > n)
    {   
        ans = max(ans,u);
        return;
    }
    if(u - w[v] >= 0 && (u - w[v] + yyy[v + 1]) >= ans) dfs(u - w[v],v + 1);
    if(u + w[v] <= maxlevel) dfs(u + w[v],v + 1);
}
signed main()
{
    cin >> n >> beginlevel >> maxlevel;
    for(int i = 1;i <= n;i++)
    {
        cin >> w[i];
    }
    for(int i = n;i >= 1;i--)
    {
        yyy[i] = yyy[i - 1] + w[i];
    }
    dfs(beginlevel,1);
    if(ans == -1145141919810) cout << -1;
    else cout << ans;
    return 0;
}
2024/7/6 10:42
加载中...