Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: NovemNotes

Problemset: ความหลากหลาย

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-17 10:58:51

#include <bits/stdc++.h>
using namespace std;

const int N = 59;

int n,m,ans=0;
int tab[N][N];
int sum[N][N][11];

int main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    cin >> n >> m;
    set<int> s;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin >> tab[i][j];
            int num = tab[i][j];
            s.insert(num);
            sum[i][j][num]++;
        }
    }
    for(auto &num:s){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                sum[i][j][num]+=sum[i-1][j][num]+sum[i][j-1][num]-sum[i-1][j-1][num];
            }
        }
    }
    for(int i=1;i<=n-5+1;i++){
        for(int j=1;j<=m-5+1;j++){
            int x=i,y=j;
            int nx = min(n,x+4),ny = min(m,y+4);
            int cnt=0;
            for(int num=0;num<=9;num++){
                int mat = sum[nx][ny][num] - sum[x-1][ny][num] - sum[nx][y-1][num] + sum[x-1][y-1][num];
                if(mat>0)cnt++;
            }
            if(cnt>=5)ans++;
        }
    }
    cout << ans << "\n";
    return 0;
}