Submission #340219

#TimeUsernameProblemLanguageResultExecution timeMemory
340219SprdaloBomb (IZhO17_bomb)C++17
10 / 100
131 ms49536 KiB
#include <bits/stdc++.h> using namespace std; #define int ll typedef long long ll; typedef long double ld; typedef pair<int, int> pi; typedef pair<ll, ll> pl; typedef vector<int> vi; typedef vector<ll> vl; typedef vector<double> vd; typedef vector<bool> vb; typedef vector<char> vc; typedef vector<string> vs; typedef vector<pi> vp; typedef vector<pl> vpl; const int maxn = 2505; int a[maxn][maxn], n, m; int prvi(int ind){ int cur = 0; vi t; for (int i = 0; i < m; ++i){ if (a[ind][i] == 1) ++cur; else{ if (!cur) continue; t.push_back(cur); cur = 0; } } if (cur) t.push_back(cur); if (t.empty()) return 0; return *min_element(t.begin(), t.end()); } int prvim(int ind){ int cur = 0; vi t; for (int i = 0; i < n; ++i){ if (a[i][ind] == 1) ++cur; else{ if (!cur) continue; t.push_back(cur); cur = 0; } } if (cur) t.push_back(cur); if (t.empty()) return 0; return *min_element(t.begin(), t.end()); } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cerr.tie(nullptr); cin >> n >> m; for (int i = 0; i < n; ++i){ string s; cin >> s; for (int j = 0; j < m; ++j) a[i][j] = s[j]-'0'; } if (n == 1) return cout << prvi(0) << '\n', 0; if (m == 1) return cout << prvim(0) << '\n', 0; int sol = prvi(0); for (int i = 0; i < n; ++i){ int x = prvi(i); if (!x) continue; sol = min(sol, x); } int res = prvim(0); for (int i = 0; i < m; ++i){ int x = prvim(i); if (!x) continue; res = min(res, x); } cout << max(sol, res) << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...