Submission #967564

#TimeUsernameProblemLanguageResultExecution timeMemory
967564njoopBob (COCI14_bob)C++14
0 / 120
161 ms22084 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;

int n, m, arr[1010][1010], pref[2][1010][1010], w, h, mxh;
ll ans;

int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n >> m;
    for(int i=1; i<=n; i++) {
        for(int j=1; j<=m; j++) {
            cin >> arr[i][j];
        }
    }
    for(int i=1; i<=n; i++) {
        for(int j=1; j<=m; j++) {
            if(arr[i][j] == arr[i][j-1]) {
                pref[0][i][j] = pref[0][i][j-1] + 1;
            } else {
                pref[0][i][j] = 1;
            }
        }
    }
    for(int j=1; j<=m; j++) {
        for(int i=1; i<=n; i++) {
            if(arr[i][j] == arr[i-1][j]) {
                pref[1][i][j] = pref[1][i-1][j] + 1;
            } else {
                pref[1][i][j] = 1;
            }
        }
    }
    for(int i=1; i<=n; i++) {
        for(int j=1; j<=m; j++) {
            w = pref[0][i][j];
            h = pref[1][i][j];
            ans += h;
            for(int k=j-1; k>j-w; k--) {
                h = max(h, pref[1][i][k]);
                ans += h;
            }
        }
    }
    cout << ans;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...