Submission #1917264
Source Code Expand
#include <iostream>
#include <array>
#include <map>
#include <algorithm>
#include <cmath>
#include <vector>
#include <fstream>
#include <string>
#include <random>
#include <queue>
#include <iomanip>
#include <functional>
#include <climits>
#include <tuple>
#include <unordered_map>
#include <limits>
#include <functional>
#define FOR(x,n) for(int x = 0; x < n; x++)
#define PUT(x) cout << x << endl
#define DPUT(x) printf("%.15lf\n",x)
#define GET(x,y) std::get<x>(y)
#define CHMAX(x,y) x = std::max(x,y)
#define CHMIN(x,y) x = std::min(x,y)
using namespace std;
using ll = long long int;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using vll = std::vector<ll>;
using vpll = std::vector<pll>;
using vpii = std::vector<pii>;
using vi = std::vector<int>;
using vvi = std::vector<vi>;
using vvpii = std::vector<vpii>;
using vch = std::vector<char>;
using vvch = std::vector<vch>;
using tiii = std::tuple<int, int, int>;
const ll mod197 = 1000000007LL;
const ll INF = 200LL * 200 * 100000 + 10;
const double PI11 = 3.14159265359;
const int dis[5] = { 0,1,0,-1,0 };
int h, w;
int c[101][101] = {};
int memo[101][101] = {};
void display() {
FOR(i, h) {
FOR(j, w) {
cerr << memo[i][j] << " ";
}
cerr << endl;
}
cerr << endl;
FOR(i, h) {
FOR(j, w) {
cerr << c[i][j] << " ";
}
cerr << endl;
}
cerr << endl;
}
int get_sum(int choco[101][101], int y0, int x0, int y1, int x1) {
if (y0 == 0 && x0 == 0)
return choco[y1][x1];
else if (y0 == 0)
return choco[y1][x1] - choco[y1][x0 - 1];
else if (x0 == 0)
return choco[y1][x1] - choco[y0 - 1][x1];
else
return choco[y1][x1] - choco[y1][x0 - 1] - choco[y0 - 1][x1] + choco[y0 - 1][x0 - 1];
}
int main(void) {
cin >> h >> w;
FOR(i, h)
FOR(j, w) {
cin >> c[i][j];
if ((i + j) % 2) {
memo[i][j] = c[i][j];
c[i][j] = 0;
}
}
//display();
FOR(i, h)
FOR(j, w) {
if (i >= 1 && j >= 1)
memo[i][j] -= memo[i - 1][j - 1];
memo[i + 1][j] += memo[i][j];
memo[i][j + 1] += memo[i][j];
}
FOR(i, h)
FOR(j, w) {
if (i >= 1 && j >= 1)
c[i][j] -= c[i - 1][j - 1];
c[i + 1][j] += c[i][j];
c[i][j + 1] += c[i][j];
}
//display();
int answer = 0;
//cerr << get_sum(memo, 1, 1, 2, 3) << endl;
//cerr << get_sum(c, 1, 1, 2, 3) << endl;
for (int i0 = 0; i0 < h; i0++)
for (int j0 = 0; j0 < w; j0++)
for (int i1 = i0; i1 < h; i1++)
for (int j1 = j0; j1 < w; j1++)
{
//cerr << i0 << " " << j0 << " " << i1 << " " << j1 << ":" << get_sum(c, i0, j0, i1, j1) << endl;
if (get_sum(memo, i0, j0, i1, j1) == get_sum(c, i0, j0, i1, j1)) {
//cerr << i0 << " " << j0 << " " << i1 << " " << j1 << ":" << get_sum(c, i0, j0, i1, j1) << endl;
answer = max(answer, (i1-i0+1) * (j1-j0+1) );
}
}
cout << answer << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
B - チョコレート |
User |
nasatame |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
2937 Byte |
Status |
AC |
Exec Time |
166 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 |
1 ms |
256 KB |
subtask1_06.txt |
AC |
2 ms |
256 KB |
subtask1_07.txt |
AC |
1 ms |
256 KB |
subtask1_08.txt |
AC |
1 ms |
256 KB |
subtask1_09.txt |
AC |
164 ms |
384 KB |
subtask1_10.txt |
AC |
24 ms |
256 KB |
subtask1_11.txt |
AC |
150 ms |
384 KB |
subtask1_12.txt |
AC |
150 ms |
384 KB |
subtask1_13.txt |
AC |
150 ms |
384 KB |
subtask1_14.txt |
AC |
165 ms |
384 KB |
subtask1_15.txt |
AC |
166 ms |
384 KB |
subtask1_16.txt |
AC |
144 ms |
384 KB |
subtask1_17.txt |
AC |
132 ms |
384 KB |
subtask1_18.txt |
AC |
1 ms |
256 KB |
subtask1_19.txt |
AC |
1 ms |
384 KB |
subtask1_20.txt |
AC |
154 ms |
384 KB |