#55389: C++ 暴力解,無優化


darrenw1004 (darrenw1004)


#include<bits/stdc++.h>
using namespace std;
const int MAXN= 2e8+11;
vector<vector<int>> A(109,vector<int>(109,MAXN));
int T=0;
bool ASFD=true;
void compare(pair<int,int>&min){
    int a=A[min.first][min.second-1];
    int d=A[min.first][min.second+1];
    int w=A[min.first-1][min.second];
    int s=A[min.first+1][min.second];
    if(a<d&&a<s&&a<w)min.second-=1;
    else if(d<s&&d<w&&d<a)min.second+=1;
    else if(s<d&&s<w&&s<a)min.first+=1;
    else if(w<d&&w<s&&w<a)min.first-=1;
    else{
        cout<<T<<endl;
        ASFD=false;
    }
}
int main(){
    int n,m;
    pair<int,int>min;
    int min_num=MAXN;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>A[i][j];
            if(A[i][j]<min_num){
                min={i,j};
                min_num=A[i][j];
            }
        }
    }
    while(ASFD){
        T+=A[min.first][min.second];
        A[min.first][min.second]=MAXN;
        compare(min);
    }
}