1 solutions

  • 0
    @ 2025-3-3 16:21:27

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int fx[] = {-1,0,1,0,-1,-1,1,1}; //i方向 
    int fy[] = {0,1,0,-1,-1,1,1,-1}; //j方向 
    int R,C,a[51][51]; 
    int main(){
        cin>>R>>C;
        int i,j,k,t,oi,oj,mx=INT_MIN;
        for(i=1;i<=R;i++) 
            for(j=1;j<=C;j++) 
                cin>>a[i][j];
        for(i=1;i<=R;i++) 
        {
            for(j=1;j<=C;j++)
            {   //0的时候 跳过 
                if(a[i][j]==0) continue;
                t = 0;
                //方向数组 
                for(k=0;k<8;k++)
                {
                    oi = i + fx[k];
                    oj = j + fy[k];
                    if(oi>=1&&oi<=R&&oj>=1&&oj<=C&&a[oi][oj]==a[i][j])
                    {
                        t++;
                    }
                }
                if(t>0){
                    mx = max(mx,a[i][j]);
                }
            } 
        }
        cout<<mx; 
        return 0;
    }
    
    • 1

    Information

    ID
    9959
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By