Submission #500836


Source Code Expand

#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,b) FOR(i,0,b)
#define PB push_back
#define BE(c) c.begin(),c.end()
#define F first
#define S second
using namespace std;
typedef long long LL;
typedef long double ld;
typedef int ut;
typedef pair<ut,ut> pr;
typedef vector<ut> VI;
typedef vector<pr> Vpr;
const ut INF=1<<30;
const LL p=7+1e+9;
const int SIZE=1+2*1e+3;
using namespace std;
Vpr changes;
VI user;
int N,K;
int sums[SIZE][SIZE];
int maps[SIZE][SIZE];
int numbering(int sx,int sy,int ex,int ey){
	if(sx==0 || sy==0 || ex==N+1 || ey==N+1) return 0;
	return abs(sums[ey][ex]-sums[ey][sx-1]-sums[sy-1][ex]+sums[sy-1][sx-1]);
}
int solve(){
	int sx=INF,sy=INF,ex=0,ey=0;
	REP(i,user.size()){
		sx=min(sx,changes[user[i]].S);
		sy=min(sy,changes[user[i]].F);
		ex=max(ex,changes[user[i]].S);
		ey=max(ey,changes[user[i]].F);
	}
	int maxim=0;
	REP(j,2)
		REP(k,2)	
			REP(l,2)
				REP(v,2) 
					maxim=max(maxim,numbering(sx-j,sy-k,ex+l,ey+v));
	return maxim; 
}
int main() {
	int y,x;
	cin >> N >> K;
	
	FOR(i,1,N+1)
		FOR(j,1,N+1){
			maps[i][j]=((i+j)&1)?1:-1;	
		}	
	REP(i,K){
		cin >> y >> x;
		maps[y][x]*=-1;
		changes.PB(pr(y,x));
	}
	FOR(i,1,N+1)
		FOR(j,1,N+1)
			sums[i][j]=sums[i][j-1]+sums[i-1][j]-sums[i-1][j-1]+maps[i][j];
	int maxim=0;
	FOR(i,1,1<<K){
		REP(j,K) if(i&(1<<j)) user.PB(j);
		maxim=max(solve(),maxim);
		user.clear();
	}
	cout << maxim << endl;
	return 0;
}

Submission Info

Submission Time
Task E - マス目色ぬり
User anct
Language C++11 (GCC 4.9.2)
Score 100
Code Size 1493 Byte
Status AC
Exec Time 108 ms
Memory 32040 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 27
Set Name Test Cases
Sample example_0.txt, example_1.txt, example_2.txt
All all_black_0.txt, all_black_1.txt, all_edge_0.txt, all_edge_1.txt, all_edge_2.txt, all_white_0.txt, all_white_1.txt, corner_0.txt, example_0.txt, example_1.txt, example_2.txt, maxrand_0.txt, maxrand_1.txt, maxrand_2.txt, maxrand_3.txt, maxrand_4.txt, random_0.txt, random_1.txt, random_2.txt, random_3.txt, random_4.txt, smallrand_0.txt, smallrand_1.txt, smallrand_2.txt, example_0.txt, example_1.txt, example_2.txt
Case Name Status Exec Time Memory
all_black_0.txt AC 65 ms 17496 KiB
all_black_1.txt AC 76 ms 22564 KiB
all_edge_0.txt AC 41 ms 8052 KiB
all_edge_1.txt AC 82 ms 24376 KiB
all_edge_2.txt AC 33 ms 4644 KiB
all_white_0.txt AC 27 ms 1560 KiB
all_white_1.txt AC 97 ms 31004 KiB
corner_0.txt AC 26 ms 924 KiB
example_0.txt AC 23 ms 924 KiB
example_1.txt AC 24 ms 796 KiB
example_2.txt AC 23 ms 928 KiB
maxrand_0.txt AC 100 ms 32024 KiB
maxrand_1.txt AC 100 ms 32028 KiB
maxrand_2.txt AC 101 ms 32032 KiB
maxrand_3.txt AC 101 ms 32036 KiB
maxrand_4.txt AC 108 ms 32040 KiB
random_0.txt AC 77 ms 20644 KiB
random_1.txt AC 34 ms 3880 KiB
random_2.txt AC 98 ms 29100 KiB
random_3.txt AC 84 ms 23068 KiB
random_4.txt AC 29 ms 2084 KiB
smallrand_0.txt AC 26 ms 1052 KiB
smallrand_1.txt AC 25 ms 936 KiB
smallrand_2.txt AC 25 ms 936 KiB