Submission #574045

# Submission time Handle Problem Language Result Execution time Memory
574045 2022-06-07T15:56:02 Z vovamr Bomb (IZhO17_bomb) C++17
1 / 100
679 ms 75024 KB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define fi first
#define se second
#define ll long long
#define ld long double
#define sz(x) ((int)(x).size())
#define all(x) 	(x).begin(), (x).end()
#define pb push_back
#define mpp make_pair
#define ve vector
using namespace std;
using namespace __gnu_pbds;
template<class T> using oset = tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>;
const ll inf = 1e18; const int iinf = 1e9;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
template <typename T> inline bool chmin(T& a, T b) { return (a > b ? a = b, 1 : 0); }
template <typename T> inline bool chmax(T& a, T b) { return (a < b ? a = b, 1 : 0); }
 
inline void solve() {
	int n, m;
	cin >> n >> m;
	ve<ve<int>> a(n, ve<int>(m));
	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < m; ++j) {
			char x;
			cin >> x;
			a[i][j] = x - '0';
		}
	}
 
	ve<int> mx(m + 2, iinf);
	for (int rep = 0; rep < 2; ++rep) {
		ve<ve<int>> dp1(n, ve<int> (m)), dp2(n, ve<int> (m));
		for (int j = 0; j < m; ++j) {
			for (int i = 0; i < n; ++i) {
				dp1[i][j] = (a[i][j] ? 1 + (!i ? 0 : dp1[i - 1][j]) : 0);
			}
			for (int i = n - 1; ~i; --i) {
				dp2[i][j] = (a[i][j] ? 1 + (i + 1 == n ? 0 : dp2[i + 1][j]) : 0);
				chmin(mx[1], dp1[i][j] + dp2[i][j] - 1);
			}
		}
 
		for (int i = 0; i < n; ++i) {
			for (int j = 0; j < m; ) {
				if (!a[i][j]) { ++j; continue; }
 
				int p = j;
				while (j < m && a[i][p]) ++p;
 
				int a = iinf, b = iinf;
				for (int k = j; k < p; ++k) {
					chmin(a, dp1[i][k]); chmin(b, dp2[i][k]);
					chmin(mx[k - j + 1], a + b - 1);
				}
				chmin(mx[p - j + 1], 0);
 
				j = p;
			}
		}
 
		for (int i = 0; i < n; ++i) reverse(all(a[i]));
	}
 
	ll ans = 0;
	for (int i = 1; i <= m; ++i) {
		chmin(mx[i], mx[i - 1]);
		chmax(ans, i * 1ll * mx[i]);
	}
	cout << ans;
}
 
signed main() {
	ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	int q = 1; // cin >> q;
	while (q--) solve();
	cerr << fixed << setprecision(3) << "Time execution: " << (double)clock() / CLOCKS_PER_SEC << endl;
}
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Incorrect 1 ms 212 KB Output isn't correct
3 Incorrect 1 ms 724 KB Output isn't correct
4 Incorrect 1 ms 724 KB Output isn't correct
5 Incorrect 1 ms 340 KB Output isn't correct
6 Incorrect 1 ms 340 KB Output isn't correct
7 Incorrect 1 ms 212 KB Output isn't correct
8 Incorrect 0 ms 212 KB Output isn't correct
9 Incorrect 0 ms 212 KB Output isn't correct
10 Incorrect 1 ms 212 KB Output isn't correct
11 Incorrect 1 ms 212 KB Output isn't correct
12 Incorrect 1 ms 212 KB Output isn't correct
13 Incorrect 1 ms 212 KB Output isn't correct
14 Incorrect 0 ms 212 KB Output isn't correct
15 Incorrect 0 ms 324 KB Output isn't correct
16 Incorrect 1 ms 212 KB Output isn't correct
17 Incorrect 1 ms 328 KB Output isn't correct
18 Incorrect 1 ms 340 KB Output isn't correct
19 Incorrect 1 ms 340 KB Output isn't correct
20 Incorrect 1 ms 340 KB Output isn't correct
21 Incorrect 1 ms 340 KB Output isn't correct
22 Incorrect 1 ms 340 KB Output isn't correct
23 Incorrect 1 ms 460 KB Output isn't correct
24 Incorrect 1 ms 324 KB Output isn't correct
25 Incorrect 1 ms 468 KB Output isn't correct
26 Incorrect 1 ms 340 KB Output isn't correct
27 Incorrect 4 ms 1364 KB Output isn't correct
28 Incorrect 6 ms 1748 KB Output isn't correct
29 Incorrect 6 ms 1892 KB Output isn't correct
30 Incorrect 8 ms 2708 KB Output isn't correct
31 Incorrect 6 ms 2260 KB Output isn't correct
32 Incorrect 7 ms 2372 KB Output isn't correct
33 Incorrect 9 ms 2928 KB Output isn't correct
34 Incorrect 3 ms 1424 KB Output isn't correct
35 Incorrect 8 ms 2928 KB Output isn't correct
36 Incorrect 10 ms 2900 KB Output isn't correct
37 Incorrect 1 ms 212 KB Output isn't correct
38 Correct 679 ms 74916 KB Output is correct
39 Incorrect 1 ms 340 KB Output isn't correct
40 Incorrect 67 ms 10180 KB Output isn't correct
41 Incorrect 1 ms 212 KB Output isn't correct
42 Incorrect 1 ms 468 KB Output isn't correct
43 Incorrect 619 ms 74924 KB Output isn't correct
44 Incorrect 8 ms 2900 KB Output isn't correct
45 Incorrect 646 ms 75024 KB Output isn't correct
46 Incorrect 675 ms 74968 KB Output isn't correct
47 Incorrect 661 ms 75016 KB Output isn't correct
48 Incorrect 655 ms 74928 KB Output isn't correct
49 Incorrect 665 ms 74900 KB Output isn't correct
50 Incorrect 661 ms 74960 KB Output isn't correct
51 Incorrect 627 ms 74920 KB Output isn't correct
52 Incorrect 628 ms 74900 KB Output isn't correct
53 Incorrect 609 ms 74904 KB Output isn't correct
54 Incorrect 619 ms 74904 KB Output isn't correct
55 Incorrect 634 ms 74968 KB Output isn't correct
56 Incorrect 665 ms 74940 KB Output isn't correct
57 Incorrect 614 ms 74924 KB Output isn't correct
58 Incorrect 663 ms 74936 KB Output isn't correct
59 Incorrect 615 ms 74900 KB Output isn't correct
60 Incorrect 624 ms 74908 KB Output isn't correct
61 Incorrect 635 ms 75000 KB Output isn't correct
62 Incorrect 630 ms 74924 KB Output isn't correct
63 Incorrect 659 ms 74904 KB Output isn't correct
64 Incorrect 621 ms 75016 KB Output isn't correct
65 Incorrect 642 ms 74976 KB Output isn't correct
66 Incorrect 630 ms 74896 KB Output isn't correct
67 Incorrect 629 ms 74768 KB Output isn't correct
68 Incorrect 631 ms 74776 KB Output isn't correct
69 Incorrect 622 ms 74716 KB Output isn't correct
70 Incorrect 383 ms 48192 KB Output isn't correct
71 Incorrect 616 ms 74688 KB Output isn't correct
72 Incorrect 613 ms 74728 KB Output isn't correct
73 Incorrect 635 ms 74644 KB Output isn't correct
74 Incorrect 611 ms 74660 KB Output isn't correct
75 Incorrect 618 ms 74660 KB Output isn't correct
76 Incorrect 614 ms 74556 KB Output isn't correct
77 Incorrect 622 ms 74576 KB Output isn't correct
78 Incorrect 612 ms 74516 KB Output isn't correct
79 Incorrect 630 ms 74588 KB Output isn't correct
80 Incorrect 602 ms 74524 KB Output isn't correct
81 Incorrect 599 ms 74576 KB Output isn't correct
82 Incorrect 609 ms 74516 KB Output isn't correct
83 Incorrect 611 ms 74520 KB Output isn't correct
84 Incorrect 619 ms 74600 KB Output isn't correct
85 Incorrect 596 ms 74460 KB Output isn't correct
86 Incorrect 622 ms 74428 KB Output isn't correct
87 Incorrect 618 ms 74440 KB Output isn't correct
88 Incorrect 596 ms 74428 KB Output isn't correct
89 Incorrect 625 ms 74544 KB Output isn't correct
90 Incorrect 414 ms 47904 KB Output isn't correct
91 Incorrect 611 ms 74256 KB Output isn't correct
92 Incorrect 616 ms 74320 KB Output isn't correct
93 Incorrect 626 ms 74340 KB Output isn't correct
94 Incorrect 615 ms 74280 KB Output isn't correct
95 Incorrect 623 ms 74304 KB Output isn't correct
96 Incorrect 608 ms 74312 KB Output isn't correct
97 Incorrect 620 ms 74296 KB Output isn't correct
98 Incorrect 625 ms 74260 KB Output isn't correct
99 Incorrect 620 ms 74268 KB Output isn't correct
100 Incorrect 618 ms 74320 KB Output isn't correct