목록알고리즘 문제 (164)
Muscardinus
www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름�� www.acmicpc.net #include #include using namespace std; int n; int map[21][21]; int sum; int answer = 2147000000; int solve(int x, int y, int d1, int d2) { int temp[21][21] = { 0, }; //5번 선거구 for (int i = 0; i
www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net #include #include #include using namespace std; int map[51][51]; int n, m; int answer = 2147000000; int dy[] = { 0,0,1,-1 }; int dx[] = { 1,-1,0,0 }; struct POS { int y, x, time; }; // 바이러스 int pos_size; POS pos[10]; int bfs(int pick[])..
www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net #include using namespace std; int map[101][101]; int r, c, k; int pre_row_size, cur_row_size; int pre_col_size, cur_col_size; int answer = 0; void update_row(int sy) { int bucket[101] = { 0, }; for (int x = 1; x
www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net #include using namespace std; int dy[] = { 0,0,1,-1 }; int dx[] = { 1,-1,0,0 }; int r, c, t; int map[2][50][50]; int up_y, up_x, down_y, down_x; void spread(int cur) { int next = (cur + 1) % 2; for (int y = 0; y < r; y++) { for (i..
https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가�� www.acmicpc.net #include #include using namespace std; int n; int map[20][20]; int ch[20][20]; int res = 0; int dy[] = { 1,-1,0,0 }; int dx[] = { 0,0,1,-1 }; struct Shark { int x, y, s, ate; void sizeUp() { s++; ate = 0; } }; struct ..
https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 시간초과 #include #include #include using namespace std; struct Tree { int x, y, z; bool operator > n >> m >> k; vector v; for (int y = 1; y map[y][x]; board[y][x] = 5; } } for (int i = 0; i < m; i++) { int x, y, z; ci..
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모�� www.acmicpc.net #include #include #include using namespace std; struct pos { int y, x; }; int n, l, r; int map[51][51]; int answer = 0; int dy[] = { 1,-1,0,0 }; int dx[] = { 0,0,1,-1 }; void create_area(int sy, int sx, int visite..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net #include #include #include using namespace std; int n, m; vector hs; vector chick; int ans = 2147000000; int ch[14]; void DFS(int D, int cnt) { if (D > chick.size()) return; if (cnt == m) { int sum = 0; for (int..