#pragma warning(disable : 4996) #include #include #include using namespace std; int T, N; int com[21][21]; int tile[21][21]; int tile_col_row[21][21]; //right down left up int dy[4] = { 0,1,0,-1 }; // row int dx[4] = { 1,0,-1,0 }; // col void copy_arr(int dst[][21], int src[][21]) { for (int i = 0; i < 21; i++) { for (int j = 0; j < 21; j++) dst[i][j] = src[i][j]; } } void init(int arr[][21]) { ..
전체 글
IT Blog#include #include #define MAX 17 #define INT_MAX 2147483647 using namespace std; int T,N,W,H; int map[MAX][MAX]; int ans; int dr[] = { 0, -1, 0, 1 }; int dc[] = { -1, 0, 1, 0 }; void input(int w, int h) { for (int i = 1; i
//user_code #include using namespace std; struct Place { int r_plus_c_idx; int r_minus_c_idx; int r_idx; int c_idx; int uID; int pID; int r; int c; int infected; Place* dir[8]; }; Place * place[50001]; int uIDX[10001]; Place* user[10001][100]; Place * R_plus_C[20001][10]; // 1, 5 Place * R_minus_C[20001][10]; // 3, 7 Place * R[10001][10]; Place * C[10001][10]; void init() { memset(uIDX, 0, sizeo..
#include #include #include #include #include using namespace std; bool compare(const pair& a, const pair& b) { return a.first < b.first; } bool all_com(int n, int* v) { for (int i = 0; i < n; i++) { if (v[i] == 0) return false; } return true; } int main() { int T; scanf("%d", &T); for (int i = 0; i < T; i++) { vector time_lst; int visited[401]; memset(visited, 0, sizeof(visited)); int ans = 0; i..
#include #include #include #include using namespace std; int main() { int idx = 1; int N = 0; for(int id=0; id> pwd; lst.push_back(pwd); pwd = 0; } int M = 0; scanf("%d", &M); for (int j = 0; j > odr; if (odr == 'I')// insert { list lst_I; int x = 0, y = 0; int s; scanf("%d %d", &x, &y); for (int k = 0; k > s; lst_I.push_back(s); s = 0; } auto it = lst..
#include #include using namespace std; int main() { int R, C; int dx[] = { 0, 0, 1, -1 }; int dy[] = { 1, -1, 0, 0 }; char MAP[50][50]; int GDepth[50][50] = { 0}; int WDepth[50][50] = { 0 }; int answer = -1; queue gos; queue water; scanf("%d %d", &R, &C); char input; for (int i = 0; i < R; i++) { for (int j = 0; j < C; j++) { scanf("%c", &input); if (input == '\n') { j--; continue; } if (input =..
https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net #include #include using namespace std; char board[21][21] = {}; bool visit[21] = { false }; int Count = 0, result = 0; int dx[] = { 0, 0, 1, -1 }; int dy[] = { 1, -1, 0, 0 }; int R, C; void dfs(int x, int y, int cnt) { ..
#include #include #include using namespace std; queue q; bool visited[100001]; int result; bool valid(int n) { if (n 100000 || visited[n]) return false; return true; } int BFS(int end) { while (!q.empty()) { int r = q.front().first; int l = q.front().second; q.pop(); if (r == end) return l; if (valid(r*2)) { visited[r * 2] = true; q.push(make_pair(r*2, l + 1)); } if (valid(r +1)) { vi..