Submission #2409048
Source Code Expand
#include <bits/stdc++.h>
#define range(i, a, b) for(int i = (a); i < (b); i++)
#define rep(i, a) range(i, 0, a)
using namespace std;
int h, w;
#include <boost/numeric/ublas/matrix.hpp>
using boost::numeric::ublas::matrix;
template <typename T>
class CumulativeSum2D {
matrix<T> sum;
public:
CumulativeSum2D (int h, int w) : sum(matrix<T>(h + 1, w + 1)) {}
void add(int x, int y, int num) {
x++;
y++;
sum(x, y) += num;
}
void build() {
for (int i = 1; i < sum.size1(); i++) {
for (int j = 1; j < sum.size2(); j++) {
sum(i, j) += sum(i, j - 1) + sum(i - 1, j) - sum(i - 1, j - 1);
}
}
}
T query(int sx, int sy, int gx, int gy) {
return (sum(gx, gy) - sum(sx, gy) - sum(gx, sy) + sum(sx, sy));
}
};
int main() {
cin >> h >> w;
CumulativeSum2D<int> white(h, w), black(h, w);
rep (i, h) rep (j, w) {
int in;
cin >> in;
(i + j) % 2 ? white.add(i, j, in) : black.add(i, j, in);
}
white.build();
black.build();
int ans = 0;
range (i, 0, h) range (j, 0, w) range (k, i, h + 1) range (l, j, w + 1) {
if (white.query(i, j, k, l) == black.query(i, j, k, l)) {
ans = max(ans, (k - i) * (l - j));
}
}
cout << ans << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
B - チョコレート |
User |
Masumi |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
1232 Byte |
Status |
AC |
Exec Time |
916 ms |
Memory |
384 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
100 / 100 |
Status |
|
|
Set Name |
Test Cases |
Sample |
subtask0_sample-01.txt, subtask0_sample-02.txt, subtask0_sample-03.txt, subtask0_sample-04.txt, subtask0_sample-05.txt |
All |
subtask0_sample-01.txt, subtask0_sample-02.txt, subtask0_sample-03.txt, subtask0_sample-04.txt, subtask0_sample-05.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt |
Case Name |
Status |
Exec Time |
Memory |
subtask0_sample-01.txt |
AC |
1 ms |
256 KB |
subtask0_sample-02.txt |
AC |
1 ms |
256 KB |
subtask0_sample-03.txt |
AC |
1 ms |
256 KB |
subtask0_sample-04.txt |
AC |
1 ms |
256 KB |
subtask0_sample-05.txt |
AC |
1 ms |
256 KB |
subtask1_01.txt |
AC |
1 ms |
256 KB |
subtask1_02.txt |
AC |
1 ms |
256 KB |
subtask1_03.txt |
AC |
1 ms |
256 KB |
subtask1_04.txt |
AC |
1 ms |
256 KB |
subtask1_05.txt |
AC |
2 ms |
256 KB |
subtask1_06.txt |
AC |
5 ms |
256 KB |
subtask1_07.txt |
AC |
1 ms |
256 KB |
subtask1_08.txt |
AC |
2 ms |
256 KB |
subtask1_09.txt |
AC |
914 ms |
384 KB |
subtask1_10.txt |
AC |
126 ms |
256 KB |
subtask1_11.txt |
AC |
900 ms |
384 KB |
subtask1_12.txt |
AC |
901 ms |
384 KB |
subtask1_13.txt |
AC |
901 ms |
384 KB |
subtask1_14.txt |
AC |
915 ms |
384 KB |
subtask1_15.txt |
AC |
916 ms |
384 KB |
subtask1_16.txt |
AC |
866 ms |
384 KB |
subtask1_17.txt |
AC |
731 ms |
256 KB |
subtask1_18.txt |
AC |
1 ms |
256 KB |
subtask1_19.txt |
AC |
2 ms |
256 KB |
subtask1_20.txt |
AC |
901 ms |
384 KB |