제출 #11367

#제출 시각아이디문제언어결과실행 시간메모리
11367gs14004게임판 (CEOI13_board)C++98
20 / 100
4 ms2196 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; } } }x,y; void norm(vector<int> &v){ for (int i=(int)v.size()-1; i; i--) { int r = v[i]; if(r >= 0){ v[i-1] += v[i]/2; v[i] %= 2; } else{ v[i-1] -= v[i]/2 * 2; v[i] -= v[i]/2 * 2; while(v[i] < 0) v[i-1]--, v[i] += 2; } } } 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<int> r1(x.s),r2(y.s); norm(r1); norm(r2); int res = (int)(r1.size() + r2.size()); int piv = 0; 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) > 10000000) 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...