제출 #283616

#제출 시각아이디문제언어결과실행 시간메모리
283616Marlov보물 찾기 (CEOI13_treasure2)C++14
0 / 100
0 ms384 KiB
/*
Code by @marlov       
*/
#include "treasure.h"
 
#define maxN 105
 
int N;
int psum[maxN][maxN];

//countTreasure(x1+1,y1+1,x2,y2);
//Report( x1,y1);
 
void findTreasure(int givenN){
//	ios_base::sync_with_stdio(0); cin.tie(0);
    N=givenN;
	for(int i=N/2;i<=N;i++){
		for(int j=N/2;j<=N;j++){
			psum[i][j]=countTreasure(1,1,i,j);
		}
	}
	for(int i=1;i<N/2;i++){
		for(int j=N/2;j<=N;j++){
			psum[i][j]=psum[N][j]-countTreasure(N,1,i,j);
		}
	}
	for(int i=N/2;i<=N;i++){
		for(int j=1;j<N/2;j++){
			psum[i][j]=psum[i][N]-countTreasure(1,N,i,j);
		}
	}
	for(int i=1;i<N/2;i++){
		for(int j=1;j<N/2;j++){
			psum[i][j]=-(psum[N][N]-countTreasure(i,j,N,N)-psum[i][N]-psum[N][j]);
		}
	}
	for(int i=1;i<=N;i++){
		for(int j=1;j<=N;j++){
			if(psum[i][j]-psum[i-1][j]-psum[i][j-1]+psum[i-1][j-1]==0) Report(i,j);
		}
	}
}
 
/* stuff you should look for
	* int overflow, array bounds
	* special cases (n=1,n=0?)
	* do smth instead of nothing and stay organized
*/
#Verdict Execution timeMemoryGrader output
Fetching results...