Бодолт илгээх | Бүх бодолтууд | Шилдэг бодолтууд | Жагсаалт руу буцах |
RGB9031 - Төлбөр |
Нүд бүрт нь ямар нэгэн тоо бичигдсэн тэгш өнцөгт хүснэгтийн зүүн дээд нүдэнд тоглогч байрлаж байгаа. Түүнд нэг нүүдлээр эсвэл баруун, эсвэл доошоо зэргэлдээ нүдэндээ шилжихийг зөвшөөрдөг. ( Зүүн болон дээшээ шилжилтийг хориглодог) Нүднүүдээр дамжин шилжилт хийх замдаа тухайн нүдэнд байгаа тоон дүнгээр тоглогч төлбөр төлдөг. ( Түүний замын эхэн болон сүүлийн нүдэн дэх тоогоор ч бас төлбөр төлнө.) Тоглочийн баруун доод нүдэнд хүрэх замдаа төлбөр төлөх хамгийн бага дүнг тооцоол.
Input
Эхний мөрөнд хүснэгтийн хэмжээ N ба M тоонууд өгөгдөнө. (1<=N,M<=20 )
Дараагийн N мөр бүрт M тоонууд. Тухайн харгалзах нүдэн дэх төлбөрийн хэмжээ 0-оос 100 хүртэлх бүхэл тоо.
Output
Баруун доод нүд хүрэх замд төлөх хамгийн бага дүн.
Example
Input:
3 4
1 1 1 1
5 2 2 100
9 4 2 1
Output:
8
Нэмсэн: | Bataa |
Огноо: | 2010-02-10 |
Хугацааны хязгаарлалт: | 1s |
Эх кодын хэмжээний хязгаарлалт: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Програмчлалын хэлүүд: | ADA95 ASM32 ASM64 BASH BF C CSHARP C++ 4.3.2 CPP CPP14 C99 CLPS LISP sbcl LISP clisp D ERL FORTRAN HASK ICON ICK JAVA JS-RHINO LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYPY RUBY SCALA SCM guile ST TCL TEXT WHITESPACE |
hide comments
2024-02-06 07:51:34
#include <bits/stdc++.h> using namespace std; int main() { int n,m,a[20][20], b[21][21]; cin>>n>>m; for (int i=0;i<n;i++) { for(int j=0; j<m;j++) { cin >> a[i][j]; } } b[0][0]=a[0][0]; for (int i=1; i<n; i++) { b[i][0]=b[i-1][0]+a[i][0]; } for (int j=1; j<m; j++) { b[0][j]=b[0][j-1]+a[0][j]; } for (int i=1; i<n; i++) { for (int j=1; j<m; j++) { b[i][j]=min(b[i-1][j], b[i][j-1])+a[i][j]; } } cout << b[n-1][m-1] << endl; return 0; } |
|
2024-02-06 07:51:27
#include <bits/stdc++.h> using namespace std; int main() { int n,m,a[100][100],b[100][100]; cin>>n>>m; for (int i=0;i<n;i++) for(int j=0; j<m;j++) cin>>a[i][j]; b[0][0]=a[0][0]; for (int i=1; i<n; i++) b[i][0]=b[i-1][0]+a[i][0]; for (int j=1; j<m; j++) b[0][j]=b[0][j-1]+a[0][j]; for (int i=1; i<n; i++) for (int j=1; j<m; j++) b[i][j]=min(b[i-1][j], b[i][j-1])+a[i][j]; cout << b[n-1][m-1] << endl; return 0; } huularai guys |
|
2024-02-06 07:20:15
wr Last edit: 2024-02-06 07:25:53 |
|
2015-04-08 10:30:57 monkherdene
. . Last edit: 2015-04-08 10:31:28 |
|
2013-03-26 09:58:00 temuulen
|
|
2010-12-04 09:23:00 Uka_09
:) |