#55399: C++暴力解無優化


darrenw1004 (darrenw1004)


#include<bits/stdc++.h>
using namespace std;
vector<vector<int>> a (55,vector<int>(55,-1));
const int A[4][2]{
    {1,0},{0,1},{-1,0},{0,-1}
};
int main(){
    int R,C,k,m;
    cin>>R>>C>>k>>m;
    for(int i=1;i<=R;i++){
        for(int j=1;j<=C;j++){
            cin>>a[i][j];
        }
    }
    while(m>0){
        --m;
        int b[R+1][C+1]{};
        for(int i=1;i<=R;i++){
            for(int j=1;j<=C;j++){
                for(int l=0;l<4;l++){
                    if(a[i+A[l][0]][j+A[l][1]]!=-1){
                        b[i][j]=b[i][j]-(a[i][j]/k);
                        b[i+A[l][0]][j+A[l][1]]=b[i+A[l][0]][j+A[l][1]]+(a[i][j]/k);
                    }
                }
            }
        }
        for(int i=1;i<=R;i++){
            for(int j=1;j<=C;j++){
                a[i][j]+=b[i][j];
            }
        }
    }
    priority_queue<int>B;
    priority_queue<int,vector<int>,greater<int>>L;
    for(int i=1;i<=R;i++){
        for(int j=1;j<=C;j++){
            B.push(a[i][j]);
            if(a[i][j]!=-1)L.push(a[i][j]);
        }
    }
    cout<<L.top()<<'\n'<<B.top()<<endl;
}