304062026-07-05 15:58:21KristófKitalálós játék kérdésenként fizetve ***cpp17Elfogadva 100/10043ms1404 KiB
#include <iostream>
#include <vector>
using namespace std;
int INF=1e9;
int main()
{
    int n;cin>>n;
    vector<vector<int>> dp(n+1,vector<int>(n+1,INF));
    vector<int> costs(n+1);
    dp[0][0]=0;
    for(int i=1;i<=n;i++)
        {
        cin>>costs[i];
        dp[i][i]=costs[i];
        }
    for(int i=0;i<=n;i++)
        for(int j=i+1;j<=n;j++)
            dp[j][i]=0;
    for(int len=2;len<=n;len++)
        {
        for(int l=1;l+len-1<=n;l++)
            {
            int r=l+len-1;
            dp[l][r]=min(dp[l+1][r]+costs[l],dp[l][r-1]+costs[r]);
            for(int k=l+1;k<r;k++)
                {
                dp[l][r]=min(dp[l][r],max(dp[l][k-1],dp[k+1][r])+costs[k]);
                //cout<<len<<" "<<max(dp[l][k-1],dp[k+1][r])<<" "<<costs[k]<<" "<<k<<"\n";
                }

            }
        }
    cout<<dp[1][n];
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base100/100
1Elfogadva6/61ms316 KiB
2Elfogadva6/61ms316 KiB
3Elfogadva6/61ms316 KiB
4Elfogadva6/61ms316 KiB
5Elfogadva6/61ms316 KiB
6Elfogadva6/63ms316 KiB
7Elfogadva6/68ms764 KiB
8Elfogadva6/620ms1052 KiB
9Elfogadva6/620ms1052 KiB
10Elfogadva6/621ms820 KiB
11Elfogadva6/620ms1044 KiB
12Elfogadva6/643ms1400 KiB
13Elfogadva7/743ms1400 KiB
14Elfogadva7/743ms1404 KiB
15Elfogadva7/743ms1404 KiB
16Elfogadva7/743ms1332 KiB