Submission #11365

#TimeUsernameProblemLanguageResultExecution timeMemory
11365gs14004게임판 (CEOI13_board)C++98
10 / 100
4 ms2084 KiB
#include <cstdio> #include <vector> #include <cstdlib> #include <algorithm> using namespace std; struct big{ vector<int> s; void i(){ s.push_back(1); } void one(){ s.push_back(0); } void two(){ s.push_back(1); } void l(){ s.back()--; } void r(){ s.back()++; } void u(){ int r = s.back(); s.pop_back(); if(r >= 0){ s.back() += r/2; r %= 2; } else{ s.back() -= r/2 * 2; r -= r/2 * 2; while(r < 0) s.back()--, r += 2; } } int ret(){ if(s.empty()) return -1; int r = s.back(); s.pop_back(); if(r >= 0){ s.back() += r/2; r %= 2; } else{ s.back() -= r/2 * 2; r -= r/2 * 2; while(r < 0) s.back()--, r += 2; } return r; } }x,y; int main(){ char str1[100005], str2[100005]; scanf("%s %s",str1,str2); x.i(); y.i(); for (int i=0; str1[i]; i++) { if(str1[i] == '1') x.one(); if(str1[i] == '2') x.two(); if(str1[i] == 'L') x.l(); if(str1[i] == 'R') x.r(); if(str1[i] == 'U') x.u(); } for (int i=0; str2[i]; i++) { if(str2[i] == '1') y.one(); if(str2[i] == '2') y.two(); if(str2[i] == 'L') y.l(); if(str2[i] == 'R') y.r(); if(str2[i] == 'U') y.u(); } vector<char> r1,r2; while (1) { int r = x.ret(); if(r == -1) break; r1.push_back(r); } while (1) { int r = y.ret(); if(r == -1) break; r2.push_back(r); } reverse(r1.begin(),r1.end()); reverse(r2.begin(),r2.end()); int res = (int)(r1.size() + r2.size()); int piv = 0; while (piv < r1.size() && piv < r2.size() && r1[piv] == r2[piv]) { res-=2; piv++; } int rr = res; int dist = 0; while (piv < r1.size() && piv < r2.size()) { dist <<= 1; dist += r2[piv] - r1[piv]; res -= 2; piv++; rr = min(rr,res + abs(dist)); if(abs(dist) > 1000000) break; } printf("%d",rr); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...