풀이
매일 가슴이 갈라져요
숨이 다 끊어질만큼 울어요
수 천 번 잊었다 외쳐봐도
내 삶은 어느새 벼랑 끝에 서있네요
코드
#include <cstdio>
#include <cstring>
#define R(N) for(int i=1;i<=N;i++)
int n, m, a[1002][1002], num[1002][1002], res[4004];
void go(int x, int y, int s, int d, int cnt) {
int dx[] = { -1*s,0 }, dy[] = { 0,+1*s };
while (a[x][y] != -1) {
if (a[x][y] == 1) d = (d+1)%2;
x += dx[d], y += dy[d];
}
res[cnt] = num[x][y];
}
int main() {
scanf("%d %d", &n, &m);
memset(a, -1, sizeof(a));
R(n) for (int j = 1; j <= m; j++) {
scanf("%d", &a[i][j]);
}
R(n) {
num[i][0] = i;
num[n-i+1][m+1] = i+n+m;
}
R(m) {
num[n+1][i] = i+n;
num[0][m-i+1] = i+n+m+n;
}
R(n) {
go(i, 1, 1, 1, num[i][0]);
go(i, m, -1, 1, num[i][m+1]);
}
R(m) {
go(n, i, 1, 0, num[n+1][i]);
go(1, i, -1, 0, num[0][i]);
}
R((n+m)*2) {
printf("%d ", res[i]);
}
return 0;
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이