Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

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
2023-11-11 07:21:33
this stupid problem is the reason why niggers exist
2023-01-09 14:20:04
#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int MAX_N = 40;

int n;
int cost[MAX_N];
int dp[MAX_N];

int f(int i) {
if (i == 1) return cost[1];

if (dp[i] != -1) return dp[i];

dp[i] = min(f(i-1) + cost[i], f(i-2) + cost[i]);
return dp[i];
}

int main() {
cin >> n;
memset(dp, -1, sizeof(dp));

for (int i = 1; i <= n; i++) {
cin >> cost[i];
}

cout << f(n) << endl;
return 0;
}
ingeel bolo
2022-06-26 13:12:24
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <tuple>
#include <cmath>
#include <iomanip>
#include <set>
#include <map>

#define P 3.141592
#define PB push_back
#define MT make_tuple
#define MP make_pair

using namespace std;

pair<int,int> Temp(){
int temp1; cin >> temp1;
int temp2; cin >> temp2;
return MP(temp1,temp2);
}
/*vector<int> v(100,5);
for (auto x : v){
cout << x << endl;
}*/
// set<int> s; s.insert() , s.count() , s.erase()
typedef long long int II;
typedef vector<tuple<int,int,int>> vT; // make_tuple(var1,var2,var3) or tuple<int,int,int>(var1,var2,var3) || get<0>(var)
typedef vector<pair<int,int>> vP; // {var1,var2} or make_pair(var1,var2) || .first and .second

int main() {
int n; cin >> n;

vector<int> v;

while (n > 0){
n--;
int temp; cin >> temp;
v.push_back(temp);
}

for (int i = 2; i < v.size(); i++){
int temp = v[i - 1] <= v[i - 2] ? v[i - 1] : v[i - 2];
v[i] += temp;
}

cout << v.back();

return 0;
}
2021-07-09 12:27:38
#include <stdio.h>
int tol[100],gish[100],i,n;
int main()
{
scanf("%d",&n);
for (i=1; i<=n; i++)
scanf("%d",&tol[i]);
gish[1]=tol[1];
gish[2]=tol[2];
for(i=3; i<=n; i++)
if(gish[i-1]<gish[i-2])
gish[i]=gish[i-1]+tol[i];
else
gish[i]=gish[i-2]+tol[i];
printf("%d",gish[n]);
return 0;
}
2021-01-24 16:00:28
Ene bodlogoniii bodolt ni yg umnu ni bodoj baisan shatnii gishguuriin bolomj olohtoi adilhan logic toi bodogdoh ym. Hervee ene bodoltiig buren oilgomoor baival engun0301@gmail.com ruu mail bicheeree.

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(){
int n;
cin >> n;

vector<int> stairs(n + 1);
for(int i = 1; i <= n; i++)
cin >> stairs[i];

for(int i = 3; i <= n; i++){
stairs[i] += min(stairs[i - 1], stairs[i - 2]);
}
cout << stairs[n];

return 0;
}
2021-01-23 04:31:42
2 3 4 2 2 4 3 5 ene 5 hurtel gesen baij ygad 3 der zaval ochod bn
hamgin bagada 11 bn shd 2+3+2+2+4 ged
5 ig oroltsuulahgui ene bodlogo aldatai bn
2020-11-07 03:23:08
#include <cstdio>
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]);
return 0;
}
2020-09-26 07:17:27


Last edit: 2020-09-26 07:18:32
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]);
}
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.