원판 돌리기
www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net #include #include #include using namespace std; int wonpan[51][51]; int check[51][51]; int n, m, t; int NON = 99999; struct s { int x, d, k; }spin[51]; int dx[] = { -1,1,0,0 }; int dy[] = { 0,0,1,-1 }; void clockwise(int w..
새로운 게임2
www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net #include #include #include using namespace std; struct horse { int x, y, d; } h[10]; int N, K; int dx[] = { 0, 0, 0, -1, 1 }; int dy[] = { 0, 1, -1, 0, 0 }; int turn[] = { 0, 2, 1, 4, 3 }; int color[13][13]; vector info[13][13]; ..
새로운 게임
www.acmicpc.net/problem/17780 17780번: 새로운 게임 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net #include #include using namespace std; struct horse { int x, y, d; bool is_bottom; } h[10]; int N, K; int dx[] = { 0, 0, 0, -1, 1 }; int dy[] = { 0, 1, -1, 0, 0 }; int turn[] = { 0, 2, 1, 4, 3 }; int color[13][13]; vector info[13][..
벽 부수고 이동하기
www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net /* 벽부수고 이동하기 2206번 */ #include #include #include #include #include using namespace std; int d[1005][1005]; int check[1005][1005][2]; int dx[] = { -1,1,0,0 }; int dy[] = { 0,0,-1,1 }; queue q; int n, m; int func(int x,..
뮤탈리스크
www.acmicpc.net/problem/12869 12869번: 뮤탈리스크 1, 3, 2 순서대로 공격을 하면, 남은 체력은 (12-9, 10-1, 4-3) = (3, 9, 1)이다. 2, 1, 3 순서대로 공격을 하면, 남은 체력은 (0, 0, 0)이다. www.acmicpc.net #include #include #include #define INF 999999999 using namespace std; int dp[70][70][70]; int n, a, b, c; int func(int x, int y, int z) { if (!x&&!y&&!z)return 0; int &ret = dp[x][y][z]; if (ret != -1)return ret; ret = INF; ret = min(re..