Submission #103582

#TimeUsernameProblemLanguageResultExecution timeMemory
103582kishtarn555Sličice (COCI19_slicice)C++14
90 / 90
249 ms2552 KiB
#include<iostream> #include<map> #include<set> #include<vector> using namespace std; int N,M, K; long long b[505]; long long p[505]; long long memo[502][502]; long long dp (int cur, int K) { if (cur ==N)return 0; if (memo[cur][K])return memo[cur][K]; memo[cur][K]=dp(cur+1,K)+b[p[cur]]; for (int i = 0; i <= K && p[cur]+i<=M; i++) { memo[cur][K]=max(memo[cur][K],b[p[cur]+i]+dp(cur+1,K-i)); } return memo[cur][K]; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >>N>>M>>K; for (int i =0; i < N; i++) { cin >> p[i]; } for (int i =0; i <= M; i++) { cin >> b[i]; } cout << dp(0,K); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...