Submission #3629074
Source Code Expand
#include <iostream> #include <queue> #include <algorithm> #include <string> using namespace std; int dx[] = {1, -1, 0, 0}; int dy[] = {0, 0, 1, -1}; const int INF = 1 << 28; int rec[101][101][101][4]; char board[101][101]; struct Elem { int x, y, str_pos, dir, cost; Elem() {} Elem(int a, int b, int c, int d, int e) : x(a), y(b), str_pos(c), dir(d), cost(e) {} }; int main() { int N, M, L; cin >> N >> M >> L; string s; cin >> s; for(int i=0; i<N; i++) { for(int j=0; j<M; j++) { cin >> board[i][j]; } } queue<Elem> que; fill(rec[0][0][0], rec[N][0][0], INF); for(int i=0; i<N; i++) { for(int j=0; j<M; j++) { rec[i][j][0][0] = 0; que.push(Elem(i, j, 0, 0, 0)); } } while(que.size()) { Elem cur = que.front(); que.pop(); if(cur.str_pos == s.length()) continue; int val = cur.cost; if(val > rec[cur.x][cur.y][cur.str_pos][cur.dir]) continue; for(int k=0; k<4; k++) { if(cur.str_pos != 0 and k == cur.dir) continue; int cx = cur.x + dx[k], cy = cur.y + dy[k], add = 1; for(; cx>=0 and cx<N and cy>=0 and cy<M; cx+=dx[k], cy+=dy[k], add++) { if(board[cx][cy] == s[cur.str_pos]) break; } if(cx < 0 or cx >= N or cy < 0 or cy >= M) continue; if(rec[cx][cy][cur.str_pos+1][k] > val + add) { rec[cx][cy][cur.str_pos+1][k] = val + add; que.push(Elem(cx, cy, cur.str_pos+1, k, val + add)); } } } int ans = INF; for(int i=0; i<N; i++) { for(int j=0; j<M; j++) { for(int k=0; k<4; k++) { ans = min(ans, rec[i][j][s.length()][k]); } } } cout << (ans == INF ? -1 : ans) << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - 僕は宇宙人 |
User | tsutaj |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1935 Byte |
Status | AC |
Exec Time | 29 ms |
Memory | 16512 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | case_000.txt, case_001.txt, case_002.txt, case_003.txt, case_004.txt, case_005.txt, case_006.txt, case_007.txt, case_008.txt, case_009.txt, case_010.txt, case_011.txt, case_012.txt, case_013.txt, case_014.txt, case_015.txt, case_016.txt, case_017.txt, case_018.txt, case_019.txt, case_020.txt, case_021.txt, case_022.txt, case_023.txt, case_024.txt, case_025.txt, case_026.txt, case_027.txt, case_028.txt, case_029.txt, case_030.txt, case_031.txt, case_032.txt, case_033.txt, case_034.txt, case_035.txt, case_036.txt, case_037.txt, case_038.txt, case_039.txt, case_040.txt, case_041.txt, case_042.txt, case_043.txt, case_044.txt, case_045.txt, case_046.txt, case_047.txt, case_048.txt, case_049.txt, case_050.txt, case_051.txt, case_052.txt, case_053.txt, case_054.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
case_000.txt | AC | 1 ms | 768 KB |
case_001.txt | AC | 1 ms | 768 KB |
case_002.txt | AC | 1 ms | 384 KB |
case_003.txt | AC | 2 ms | 1408 KB |
case_004.txt | AC | 2 ms | 1024 KB |
case_005.txt | AC | 2 ms | 1024 KB |
case_006.txt | AC | 1 ms | 768 KB |
case_007.txt | AC | 2 ms | 1024 KB |
case_008.txt | AC | 2 ms | 1664 KB |
case_009.txt | AC | 3 ms | 4352 KB |
case_010.txt | AC | 2 ms | 1792 KB |
case_011.txt | AC | 3 ms | 4352 KB |
case_012.txt | AC | 2 ms | 1024 KB |
case_013.txt | AC | 25 ms | 16512 KB |
case_014.txt | AC | 29 ms | 16512 KB |
case_015.txt | AC | 14 ms | 14720 KB |
case_016.txt | AC | 8 ms | 12672 KB |
case_017.txt | AC | 10 ms | 10752 KB |
case_018.txt | AC | 5 ms | 8448 KB |
case_019.txt | AC | 9 ms | 8576 KB |
case_020.txt | AC | 3 ms | 4352 KB |
case_021.txt | AC | 3 ms | 4352 KB |
case_022.txt | AC | 5 ms | 8448 KB |
case_023.txt | AC | 5 ms | 8448 KB |
case_024.txt | AC | 9 ms | 12672 KB |
case_025.txt | AC | 4 ms | 8448 KB |
case_026.txt | AC | 6 ms | 10496 KB |
case_027.txt | AC | 5 ms | 12544 KB |
case_028.txt | AC | 4 ms | 6400 KB |
case_029.txt | AC | 6 ms | 12544 KB |
case_030.txt | AC | 13 ms | 15360 KB |
case_031.txt | AC | 10 ms | 12672 KB |
case_032.txt | AC | 6 ms | 10496 KB |
case_033.txt | AC | 6 ms | 10496 KB |
case_034.txt | AC | 2 ms | 1152 KB |
case_035.txt | AC | 13 ms | 16000 KB |
case_036.txt | AC | 6 ms | 14592 KB |
case_037.txt | AC | 7 ms | 12544 KB |
case_038.txt | AC | 5 ms | 10496 KB |
case_039.txt | AC | 10 ms | 14848 KB |
case_040.txt | AC | 18 ms | 14848 KB |
case_041.txt | AC | 9 ms | 14720 KB |
case_042.txt | AC | 3 ms | 4352 KB |
case_043.txt | AC | 6 ms | 12544 KB |
case_044.txt | AC | 5 ms | 10496 KB |
case_045.txt | AC | 3 ms | 4352 KB |
case_046.txt | AC | 2 ms | 1664 KB |
case_047.txt | AC | 12 ms | 10624 KB |
case_048.txt | AC | 7 ms | 10624 KB |
case_049.txt | AC | 5 ms | 12544 KB |
case_050.txt | AC | 8 ms | 8576 KB |
case_051.txt | AC | 4 ms | 8448 KB |
case_052.txt | AC | 9 ms | 8576 KB |
case_053.txt | AC | 4 ms | 6400 KB |
case_054.txt | AC | 5 ms | 12544 KB |