Submission #1224252

#TimeUsernameProblemLanguageResultExecution timeMemory
1224252Muhammad_AneeqPeru (RMI20_peru)C++20
18 / 100
1098 ms49224 KiB
#include "peru.h"
#include <iostream>
using namespace std;
long long const mod=1e9+7;
int solve(int n, int k, int* v)
{
    long long dp[n+10]={};
    dp[0]=0;
    long long pw[n+10]={};
    pw[0]=1;
    for (int i=1;i<=n;i++)
    {
        long long mx=0;
        dp[i]=1e18+10;
        for (int j=i;j>max(0,i-k);j--)
        {
            mx=max(mx,1ll*v[j-1]);
            dp[i]=min(dp[i],dp[j-1]+mx);
        }
        pw[i]=(pw[i-1]*23ll)%mod;
    }
    long long ans=0;
    for (int i=1;i<=n;i++)
    {
        dp[i]%=mod;
        ans=ans+(dp[i]*pw[n-i])%mod;
        ans%=mod;
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...