본문 바로가기

알고리즘

[SW 2117] 홈 방범 서비스

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V61LqAf8DFAWu&categoryId=AV5V61LqAf8DFAWu&categoryType=CODE



<코드>


#include<cstdio>

#include<cmath>

#include<algorithm>


using namespace std;

int N, M, ans, cnt;

int map[22][22];

int dist(int x1, int y1, int x2, int y2) { return abs(x2 - x1) + abs(y2 - y1); }


void Init() {

scanf("%d %d", &N, &M);

for (int i = 1; i <= N; i++) {

for (int j = 1; j <= N; j++) {

scanf("%d", &map[i][j]);

}

}

ans = -1;

}

void sec(int x, int y, int range) {

for (int i = 1; i <= N; i++) {

for (int j = 1; j <= N; j++) {

if (dist(x, y, i, j) <= range && map[i][j]) {

cnt++;

}

}

}

}

int main() {

int T;

scanf("%d", &T);

for (int t = 1; t <= T; t++) {

Init();

for (int k = 1; k <= 2 * N + 1; k++) {

int run_cost = (k*k) + (k - 1)*(k - 1);

for (int i = 1; i <= N; i++) {

for (int j = 1; j <= N; j++) {

cnt = 0;

sec(i, j, k - 1);

if (cnt*M - run_cost >= 0) {

ans = max(ans, cnt);

}

}

}

}

printf("#%d %d\n", t, ans);

}

return 0;

}

'알고리즘' 카테고리의 다른 글

[D-14] 비슷한 유형 #1 (cnt위치,vector소팅,visit배열)  (0) 2019.04.01
[BOJ 14499] 주사위 굴리기  (0) 2019.03.19
[D-28] 알고리즘 추천 문제  (0) 2019.03.16
[BOJ 2606] 바이러스  (0) 2019.03.16
[BOJ 2573] 빙산  (0) 2019.03.12