Submission #1672610


Source Code Expand

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <algorithm>
#include <utility>
#include <functional>
#include <cstring>
#include <queue>
#include <stack>
#include <math.h>
#include <iterator>
#include <vector>
#include <string>
#include <set>
#include <math.h>
#include <iostream>
#include <random>
#include<map>
#include <iomanip>
#include <time.h>
#include <stdlib.h>
#include <list>
#include <typeinfo>
#include <list>
#include <set>
#include <cassert>
#include<fstream>
#include <unordered_map>
#include <cstdlib>
using namespace std;
#define Ma_PI 3.141592653589793
#define eps 0.00000000000000000000000001
#define LONG_INF 3000000000000000000
#define GOLD 1.61803398874989484820458
#define MAX_MOD 1000000007
#define REP(i,n) for(long long i = 0;i < n;++i)                                                                             
#define seg_size 524288
int grid[2][200][200] = {};
int input[200][200] = {};
int main() {
	int h, w;
	cin >> h >> w;
	REP(i, h) {
		REP(q, w) {
			cin >> input[i][q];
		}
	}
	for (int t = 0; t < 2; ++t) {
		for (int i = 0;i < h;++i) {
			for (int q = 0;q < w;++q) {
				if (q != 0) grid[t][i][q] = grid[t][i][q - 1];
				if ((i + q + t) % 2 == 0) grid[t][i][q] += input[i][q];
			}
		}
		for (int i = 0;i < w;++i) {
			for (int q = 0;q < h;++q) {
				if (q != 0) grid[t][q][i] += grid[t][q - 1][i];
			}
		}
	}
	int ans = 0;
	for (int left_l = 0;left_l < h;++left_l) {
		for (int left_r = left_l + 1;left_r <= h;++left_r) {
			for (int right_l = 0;right_l < w;++right_l) {
				for (int right_r = right_l + 1;right_r <= w;++right_r) {
					long long a = grid[0][left_r - 1][right_r - 1], b = grid[1][left_r - 1][right_r - 1];
					if (right_l - 1 >= 0) {
						a -= grid[0][left_r - 1][right_l - 1];
						b -= grid[1][left_r - 1][right_l - 1];
					}
					if (left_l - 1 >= 0) {
						a -= grid[0][left_l - 1][right_r - 1];
						b -= grid[1][left_l - 1][right_r - 1];
					}
					if (right_l - 1 >= 0 && left_l - 1 >= 0) {
						a += grid[0][left_l - 1][right_l - 1];
						b += grid[1][left_l - 1][right_l - 1];
					}
					if (a == b) {
						ans = max(ans, (left_r - left_l)*(right_r - right_l));
					}
				}
			}
		}
	}
	cout << ans << endl;
	return 0;
}

Submission Info

Submission Time
Task B - チョコレート
User kotamanegi
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2300 Byte
Status AC
Exec Time 82 ms
Memory 640 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 5
AC × 25
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 80 ms 512 KB
subtask1_10.txt AC 13 ms 384 KB
subtask1_11.txt AC 67 ms 512 KB
subtask1_12.txt AC 67 ms 512 KB
subtask1_13.txt AC 67 ms 512 KB
subtask1_14.txt AC 81 ms 512 KB
subtask1_15.txt AC 82 ms 512 KB
subtask1_16.txt AC 65 ms 640 KB
subtask1_17.txt AC 65 ms 512 KB
subtask1_18.txt AC 1 ms 256 KB
subtask1_19.txt AC 1 ms 512 KB
subtask1_20.txt AC 73 ms 512 KB