Submission #1115103

#TimeUsernameProblemLanguageResultExecution timeMemory
1115103duytuandao21Bob (COCI14_bob)C++17
72 / 120
1069 ms37312 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 2e5 + 7; const int inf = 1e9 + 7; typedef pair<int, int> pii; int n, m; int a[2000][2000], b[2000][2000]; int bit[2000][2000]; void update(int u, int v, int val) { for (int i = u; i <= n; i += (i & (-i))) for (int j = v; j <= m; j += (j & (-j))) bit[i][j] += val; } int get(int u, int v) { int ans = 0; for (int i = u; i > 0; i -= (i & (-i))) for (int j = v; j > 0; j -= (j & (-j))) ans += bit[i][j]; return ans; } int cal(int x, int y, int u, int v) { return get(u, v) - get(u, y - 1) - get(x - 1, v) + get(x - 1, y - 1); } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> a[i][j]; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int k = j; k <= m + 1; k++) { if (a[i][k] != a[i][j]) { b[i][j] = k - 1; break; } } } } int res = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { int minCol = inf; for (int k = i; k <= n; k++) { if (a[k][j] != a[i][j]) break; minCol = min(minCol, b[k][j]); res += minCol - j + 1; } } } cout << res; }
#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...