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.|

RGB8054 - Төлбөр

Нүд бүрт нь ямар нэгэн тоо бичигдсэн тэгш өнцөгт хүснэгтийн зүүн дээд нүдэнд тоглогч байрлаж байгаа. Түүнд нэг нүүдлээр эсвэл баруун, эсвэл доошоо зэргэлдээ нүдэндээ шилжихийг зөвшөөрдөг. ( Зүүн болон дээшээ шилжилтийг хориглодог) Нүднүүдээр дамжин шилжилт хийх замдаа тухайн нүдэнд байгаа тоон дүнгээр тоглогч төлбөр төлдөг. ( Түүний замын эхэн болон сүүлийн нүдэн дэх тоогоор ч бас төлбөр төлнө.) Тоглочийн баруун доод нүдэнд хүрэх замдаа төлбөр төлөх хамгийн бага дүнг тооцоол.

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-01-28
Хугацааны хязгаарлалт: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 PYTHON RUBY SCALA SCM guile SCM qobi ST TCL TEXT WHITESPACE

hide comments
2024-02-07 04:07:26
#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;
}


huulaira boys
2020-02-08 04:48:08
#include <iostream>
using namespace std;

int main() {

int n,m,i = 0,j = 0;
scanf("%d",&n);
scanf("%d",&m);
int a[100][100];
int e;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
{
scanf("%d",&e);
a[i][j] = e;
}
}
int b[100][100];
for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
{
if (i == 1)
{
b[i][j] = b[i][j - 1] + a[i][j];
}
else if (j == 1)
{
b[i][j] = b[i - 1][j] + a[i][j];
}
else
{
if (b[i - 1][j] <= b[i][j - 1])
{
b[i][j] = b[i - 1][j] + a[i][j];
}
else
{
b[i][j] = b[i][j - 1] + a[i][j];
}
}
}
}
cout << b[n][m];

return 0;
}
2013-04-04 07:58:01 G.Uuganbayar BKH
Бодолтоо тавьсанд баярлалаа
2013-04-04 05:42:45 temuulen
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[100][100],i,j,m,n;
scanf("%d",&n);
scanf("%d",&m);
for(i=0;i<n;i++){for(j=0;j<m;j++) scanf("%d",&a[i][j]);}
for(i=0;i<n;i++){for(j=0;j<m;j++) if(i==0 && j==0) a[i][j]=a[i][j];
else if(j==0) {a[i][j]=a[i][j]+a[i-1][j];}
else if(i==0) {[j-1];}
else if(a[i][j-1]>a[i-1][j]){ a[i][j]=a[i][j]+a[i-1][j];}
else a[i][j]=a[i][j]+a[i][j-1];}
printf("%d",a[n-1][m-1]);
system("pause");
}
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.