# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
136466 | 2019-07-25T10:43:17 Z | sebinkim | Connect (CEOI06_connect) | C++14 | 31 ms | 17016 KB |
#include <bits/stdc++.h> using namespace std; int D[1010][9090]; char S[33][99]; int n, m; int main() { int i, j, x, y, t; scanf("%d%d\n", &n, &m); for(i=0; i<n; i++){ fgets(S[i], 88, stdin); } n /= 2; m /= 2; for(i=0; i<=n*m; i++){ for(j=0; j<(1<<n+1); j++){ D[i][j] = 1e9; } } D[0][0] = 0; for(i=0; i<n*m; i++){ x = i % n << 1 | 1; y = i / n << 1 | 1; for(j=0; j<(1<<n+1); j++){ if(S[x][y] == 'X'){ if((j & 3) == 3) continue; else if(j & 3){ t = j >> 1 & ~1; D[i + 1][t] = min(D[i + 1][t], D[i][j] + 1); } else{ if(S[x + 1][y] != '-'){ t = j >> 1 | 1; D[i + 1][t] = min(D[i + 1][t], D[i][j] + 1); } if(S[x][y + 1] != '|'){ t = j >> 1 & ~1 | 1 << n; D[i + 1][t] = min(D[i + 1][t], D[i][j] + 1); } } } else{ if((j & 3) == 3){ t = j >> 1 & ~1; D[i + 1][t] = min(D[i + 1][t], D[i][j] + 2); } else if(j & 3){ if(S[x + 1][y] != '-'){ t = j >> 1 | 1; D[i + 1][t] = min(D[i + 1][t], D[i][j] + 2); } if(S[x][y + 1] != '|'){ t = j >> 1 & ~1 | 1 << n; D[i + 1][t] = min(D[i + 1][t], D[i][j] + 2); } } else{ t = j >> 1 & ~1; D[i + 1][t] = min(D[i + 1][t], D[i][j]); if(S[x + 1][y] != '-' && S[x][y + 1] != '|'){ t = j >> 1 | 1 | 1 << n; D[i + 1][t] = min(D[i + 1][t], D[i][j] + 2); } } } } } printf("%d\n", D[n * m][0]); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 2 ms | 504 KB | Partially correct (80% score). Wrong board |
2 | Partially correct | 2 ms | 504 KB | Partially correct (80% score). Wrong board |
3 | Partially correct | 3 ms | 760 KB | Partially correct (80% score). Wrong board |
4 | Partially correct | 4 ms | 1272 KB | Partially correct (80% score). Wrong board |
5 | Partially correct | 12 ms | 5496 KB | Partially correct (80% score). Wrong board |
6 | Partially correct | 3 ms | 1148 KB | Partially correct (80% score). Wrong board |
7 | Partially correct | 2 ms | 892 KB | Partially correct (80% score). Wrong board |
8 | Partially correct | 3 ms | 1272 KB | Partially correct (80% score). Wrong board |
9 | Partially correct | 3 ms | 1660 KB | Partially correct (80% score). Wrong board |
10 | Partially correct | 4 ms | 2168 KB | Partially correct (80% score). Wrong board |
11 | Partially correct | 4 ms | 1916 KB | Partially correct (80% score). Wrong board |
12 | Partially correct | 5 ms | 3192 KB | Partially correct (80% score). Wrong board |
13 | Partially correct | 6 ms | 3320 KB | Partially correct (80% score). Wrong board |
14 | Partially correct | 9 ms | 5112 KB | Partially correct (80% score). Wrong board |
15 | Partially correct | 11 ms | 6008 KB | Partially correct (80% score). Wrong board |
16 | Partially correct | 14 ms | 8056 KB | Partially correct (80% score). Wrong board |
17 | Partially correct | 16 ms | 8924 KB | Partially correct (80% score). Wrong board |
18 | Partially correct | 30 ms | 17016 KB | Partially correct (80% score). Wrong board |
19 | Partially correct | 31 ms | 17016 KB | Partially correct (80% score). Wrong board |
20 | Partially correct | 28 ms | 17016 KB | Partially correct (80% score). Wrong board |