제출 #237110

#제출 시각아이디문제언어결과실행 시간메모리
237110DanShadersStrah (COCI18_strah)C++17
55 / 110
1096 ms16000 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; #define all(x) begin(x), end(x) #define x first #define y second typedef long long ll; typedef long double ld; template<typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; template<typename T> using normal_queue = priority_queue<T, vector<T>, greater<T>>; const int MAX_N = 2e3 + 10, INF = 0x3f3f; char a[MAX_N][MAX_N]; short b[MAX_N][MAX_N]; signed main() { ios::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; for (int i = 0; i < n; ++i) cin >> a[i]; for (int i = n; i--; ) { for (int j = 0; j < m; ++j) { b[i][j] = b[i + 1][j] + 1; if (a[i][j] == '#') b[i][j] = 0; } } ll ans = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { short ss = +INF; for (int h = j; h < m; ++h) { ss = min(ss, b[i][h]); ans += (h - j + 1) * ss * (ss + 1) / 2; } } } cout << ans << "\n"; 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...