2659:Bomb Game
keyword
シミュレーション C++
概要
100*100以下のボードがあり、どれかのセルが当たりである。正方形の辺の長さと位置と、その正方形に当たりが入っているかどうかという情報がK(<100)個与えられる。当たりの存在しうるセルの総数を求める問題。
各情報に対してシミュレーションを100*100の計算量で行えるので、愚直にシミュレートしても全体の計算量はO(10^6)。素直に実装する。
bool board[110][110]; int main(){ int A, B, K, R, S, P, T, i, j; scanf("%d%d%d",&A,&B,&K); REP(i,A)REP(j,B) board[i][j] = true; while(K--){ scanf("%d%d%d%d",&R,&S,&P,&T); R--;S--; REP(i,A)REP(j,B)if(board[i][j]){ if(((abs(i-R) <= (P>>1)) && (abs(j-S) <= (P>>1))) ^ T) board[i][j] = false; } } int ans = 0; REP(i,A)REP(j,B)if(board[i][j]) ans++; printf("%d\n",ans); return 0; }