From 7c93b3edb77b4193389eddbfa2845b4ee338c4b7 Mon Sep 17 00:00:00 2001 From: Zydhan Linnar Putra Date: Tue, 9 Jun 2020 00:08:41 +0700 Subject: [PATCH] Ralat DP : Penukaran Emas Tidak fokus. Kode direvisi agar lebih efisien. --- .../07. Dynamic Programming/Penukaran Emas.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/Kompetitif Dasar/07. Dynamic Programming/Penukaran Emas.cpp b/Kompetitif Dasar/07. Dynamic Programming/Penukaran Emas.cpp index 9026fe3..f89a7f4 100644 --- a/Kompetitif Dasar/07. Dynamic Programming/Penukaran Emas.cpp +++ b/Kompetitif Dasar/07. Dynamic Programming/Penukaran Emas.cpp @@ -4,18 +4,11 @@ int dp[1001]; bool sudah[1001]; int count(int n) { - if(n < 2) - return 0; - if(n == 2 || n == 3) - return 1; - if(n == 4) - return 2; + if(n <= 4) + return (n / 2) + (n / 3) + (n / 4); if(sudah[n]) return dp[n]; - int tukarlagi2 = count(n / 2); - int tukarlagi3 = count(n / 3); - int tukarlagi4 = count(n / 4); - int best = max(tukarlagi2, n / 2) + max(tukarlagi3, n / 3) + max(tukarlagi4, n / 4); + int best = max(count(n / 2), n / 2) + max(count(n / 3), n / 3) + max(count(n / 4), n / 4); sudah[n] = true; dp[n] = max(best, n); return dp[n]; @@ -26,6 +19,6 @@ int main() { cin.tie(NULL); int n; cin>>n; - count(n); - cout<