# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
263424 | 2020-08-13T16:52:09 Z | Sorting | 게임판 (CEOI13_board) | C++17 | 200 ms | 896 KB |
#include <bits/stdc++.h> using namespace std; string a, b; string get_path(const string &s){ string ans = ""; int n = s.size(); for(int i = 0; i < n; ++i){ if(s[i] == '1' || s[i] == '2') ans.push_back(s[i]); else{ if(s[i] == 'U') ans.pop_back(); else{ if(s[i] == 'L'){ for(int j = (int)ans.size() - 1; j >= 0; --j){ if(ans[j] == '2'){ ans[j] = '1'; for(int k = j + 1; k < (int)ans.size(); ++k) ans[k] = '2'; break; } } } else if(s[i] == 'R'){ for(int j = (int)ans.size() - 1; j >= 0; --j){ if(ans[j] == '1'){ ans[j] = '2'; for(int k = j + 1; k < (int)ans.size(); ++k) ans[k] = '1'; break; } } } } } } return ans; } int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cin >> a >> b; a = get_path(a); b = get_path(b); int cnt = (int)min(a.size(), b.size()) - 1; for(int i = 0; i < min(a.size(), b.size()); ++i){ if(a[i] != b[i]){ cnt = i - 1; break; } } if(min(a.size(), b.size()) == cnt + 1){ cout << a.size() + b.size() - 2 * (cnt + 1) << "\n"; return 0; } if(a[cnt + 1] == '2') swap(a, b); int dist = 0, ans = a.size() + b.size(); for(int i = cnt + 1; i < min(a.size(), b.size()); ++i){ dist = 2 * dist - 1; if(a[i] == '1') dist++; if(b[i] == '2') dist++; if(dist >= 5) break; ans = min(ans, dist + (int)a.size() + (int)b.size() - 2 * (i - cnt)); } cout << ans << "\n"; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Incorrect | 1 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 640 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 384 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 512 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 384 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 384 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 512 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1046 ms | 872 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1070 ms | 896 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1086 ms | 768 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |