#28535: CPP


11030067@mail.hpsh.tp.edu.tw (和平110級鄧雨珊)

學校 : 臺北市立和平高級中學
編號 : 163096
來源 : [61.64.210.174]
最後登入時間 :
2022-10-23 16:54:59
e287. 機器人的路徑 -- APCS | From: [219.85.41.201] | 發表日期 : 2021-12-16 00:38

#include <iostream>
using namespace std;
 
int n, m, a[105][105], ni, nj, mn=1000000, ans, nxt;
int d[4][2]={{-1, 0}, {0, 1}, {1, 0}, {0, -1}};
 
bool check(int x, int y){
if (0 <= x && x < n && 0 <= y && y < m){
return true;
}
return false;
}
 
int main(){
cin >> n >> m;
for (int i=0; i<n; i++){
for (int j=0; j<m; j++){
cin >> a[i][j];
if (a[i][j]<mn){
mn=a[i][j];
ni=i;
nj=j;
}
}
}
ans+=a[ni][nj];
a[ni][nj]=-1;
while (1){
mn=1000000;
nxt=-1;
for (int i=0; i<4; i++){
if (check(ni+d[i][0], nj+d[i][1]) && a[ni+d[i][0]][nj+d[i][1]]!=-1 && a[ni+d[i][0]][nj+d[i][1]]<mn){
nxt=i;
mn=a[ni+d[i][0]][nj+d[i][1]];
}
}
if (nxt==-1){
break;
}
ni+=d[nxt][0];
nj+=d[nxt][1];
ans+=a[ni][nj];
a[ni][nj]=-1;
}
cout << ans <<endl;
}
 
ZeroJudge Forum