Submission #1573869
Source Code Expand
#include<iostream>
#include<iomanip>
#include<math.h>
#include<vector>
#include<algorithm>
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<string>
#define INF 1000000000ll
#define MOD 1000000007ll
#define EPS 1e-8
#define REP(i,m) for(long long i=0; i<m; ++i)
#define FOR(i,n,m) for(long long i=n; i<m; ++i)
#define DUMP(n,a) for(long long i=0; i<n; ++i) { cout<<a[i]; if(i!=n-1) cout<<" "; } cout<<endl;
#define ALL(v) v.begin(),v.end()
#define pb push_back
using namespace std;
typedef long long ll;
typedef pair<ll, ll> P;
typedef long double ld;
typedef vector<int> vi;
typedef vector<vector<int> > vii;
typedef vector<long long> vl;
typedef vector<vector<long long> > vll;
typedef vector<P> vp;
typedef vector<vector<P> > vpp;
class AccumulSum {
public:
AccumulSum(int h,int w,vector<vector<ll> >& a) {
_h=h;
_w=w;
_sum.resize(_h+1);
for(int i=0; i<_h+1; ++i) {
_sum[i].resize(_w+1);
for(int j=0; j<_w+1; ++j) {
if(i==0||j==0) _sum[i][j]=0;
else _sum[i][j]=a[i-1][j-1];
}
}
for(int i=0; i<_h+1; ++i) {
for(int j=1; j<_w+1; ++j) _sum[i][j]+=_sum[i][j-1];
}
for(int i=0; i<_w+1; ++i) {
for(int j=1; j<_h+1; ++j) _sum[j][i]+=_sum[j-1][i];
}
}
// the coordinates of ul and dr should be 0-indexed
long long query(pair<int,int> ul,pair<int,int> dr) {
ll ret=0;
ret+=_sum[dr.first+1][dr.second+1];
ret-=_sum[dr.first+1][ul.second];
ret-=_sum[ul.first][dr.second+1];
ret+=_sum[ul.first][ul.second];
return ret;
}
private:
int _h;
int _w;
vector<vector<ll> > _sum;
};
int main() {
ios::sync_with_stdio(false);
int h,w;
cin>>h>>w;
vector<vector<ll> > bl(h,vector<ll>(w,0));
vector<vector<ll> > wh(h,vector<ll>(w,0));
REP(i,h) {
REP(j,w) {
int c;
cin>>c;
if((i+j)%2==0) bl[i][j]=c;
else wh[i][j]=c;
}
}
AccumulSum bsum(h,w,bl);
AccumulSum wsum(h,w,wh);
ll res=0;
REP(i,h) {
REP(j,w) {
FOR(k,i,h) {
FOR(l,j,w) {
if(bsum.query(P(i,j),P(k,l))==wsum.query(P(i,j),P(k,l))) {
res=max(res,(k-i+1)*(l-j+1));
}
}
}
}
}
cout<<res<<endl;
}
Submission Info
Submission Time |
|
Task |
B - チョコレート |
User |
gazelle |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
2162 Byte |
Status |
AC |
Exec Time |
70 ms |
Memory |
640 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 |
61 ms |
640 KB |
subtask1_10.txt |
AC |
10 ms |
384 KB |
subtask1_11.txt |
AC |
49 ms |
640 KB |
subtask1_12.txt |
AC |
49 ms |
640 KB |
subtask1_13.txt |
AC |
49 ms |
640 KB |
subtask1_14.txt |
AC |
62 ms |
640 KB |
subtask1_15.txt |
AC |
63 ms |
640 KB |
subtask1_16.txt |
AC |
47 ms |
640 KB |
subtask1_17.txt |
AC |
49 ms |
512 KB |
subtask1_18.txt |
AC |
1 ms |
256 KB |
subtask1_19.txt |
AC |
1 ms |
256 KB |
subtask1_20.txt |
AC |
70 ms |
640 KB |