Бодолт илгээх | Бүх бодолтууд | Шилдэг бодолтууд | Жагсаалт руу буцах |
RGB7604 - Хүү гишгүүрт мөнгө төлбөл |
Хүү шатаар өгсөхдөө 2 янзаар урагшилна. Зогсож байгаа гишгүүрийн дараагийнх эсвэл 1 гишгүүр алгасаад дараагийнх дээр нь очно. Гэтэл нэгэн нөхөр шатны гишгүүрүүдийг төлбөртэй болгосноор асуудал үүсгэв. Сүүлийн гишгүүрт хамгийн багадаа хэдийг төлж хүрэх вэ?
Input
Эхний мөрөнд гишгүүрийн тоо. n<40.
Дараагийн мөрөнд 1-р гишгүүрээс эхлэн сүүлийн гишгүүр хүртэлх гишгүүрээр дамжсаны төлбөрүүд зайгаар тусгаарлагдан өгөгдөнө. Int Төрөл.
Output
Хамгийн бага төлбөр
Example
Input:
8
2 3 4 2 2 4 3 5
Output:
14
Нэмсэн: | Bataa |
Огноо: | 2013-01-24 |
Хугацааны хязгаарлалт: | 1s |
Эх кодын хэмжээний хязгаарлалт: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Програмчлалын хэлүүд: | ADA95 ASM32 BASH BF C NCSHARP CSHARP C++ 4.3.2 CPP C99 CLPS LISP sbcl LISP clisp D ERL FORTRAN HASK ICON ICK JAVA JS-RHINO JULIA LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON PYPY3 PYTHON3 RUBY SCALA SCM guile ST TCL WHITESPACE |
hide comments
|
||||||
2019-11-06 12:05:04
#include <cstdio> using namespace std; int main(){ int dp[50]; int i, n; int a[50]; scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&a[i]); } dp[1]=a[1]; dp[2]=a[2]; for(i=3;i<=n;i++){ if(dp[i-1] < dp[i-2]) dp[i]=dp[i-1]+a[i]; else dp[i] = dp[i-2]+a[i]; } printf("%d",dp[n]); } |
||||||
2019-11-03 07:20:08
#include <cstdio> #include <cmath> int main(){ int i , k , n , a[101] ; long long dp[101] = {0} ; scanf ("%d%d", &n, &k); for(i = 1 ; i <= k ; i ++){ scanf("%d" , &a[i]); dp[a[i]] = -1; } dp[0] = 1; if(dp[1] != -1)dp[1] = 1 ; if(dp[2] != -1){ if(dp[1] != -1)dp[2] = 2; else dp[2] = 1; } for(i = 2 ; i <= n ; i ++){ if(dp[i] != -1){ if(dp[i - 1] != -1)dp[i] += dp[i-1]; if(dp[i - 2] != -1)dp[i] += dp[i-2]; } } printf("%lld", dp[n]); } |
||||||
2019-11-03 06:46:32
lol Last edit: 2019-11-03 06:46:56 |
||||||
2019-11-03 06:37:55
#include <cstdio> #include <cmath> int main(){ int i , k , n , a[101] ; long long dp[101] = {0} ; scanf ("%d%d", &n, &k); for(i = 1 ; i <= k ; i ++){ scanf("%d" , &a[i]); dp[a[i]] = -1; } dp[0] = 1; if(dp[1] != -1)dp[1] = 1 ; if(dp[2] != -1){ if(dp[1] != -1)dp[2] = 2; else dp[2] = 1; } for(i = 3 ; i <= n ; i ++){ if(dp[i] != -1){ if(dp[i - 1] != -1)dp[i] += dp[i-1]; if(dp[i - 2] != -1)dp[i] += dp[i-2]; if(dp[i - 3] != -1)dp[i] += dp[i-3]; } } printf("%lld", dp[n]); } ez |
||||||
2019-11-03 06:33:15
|
||||||
2019-11-03 06:33:02
Last edit: 2019-11-03 06:38:05 |
||||||
2019-11-03 06:31:56
Last edit: 2019-11-03 06:41:32 |
||||||
2019-11-03 06:29:45
|
||||||
2019-11-03 06:29:36
lps pls pls pls pls pls pls pls s[lsps spa;sa;sa sps;a]s[as a |
||||||
2019-11-03 06:15:31
comment pls |