# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
63022 | Bruteforceman | Board (CEOI13_board) | C++11 | 1091 ms | 2712 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
string a, b;
string convert(string s) {
string ans = "";
string t = "";
for(int i = 0; i < s.size(); i++) {
if(!t.empty() && t.back() == 'L' && s[i] == 'R') {
t.pop_back();
}
else if(!t.empty() && t.back() == 'R' && s[i] == 'L') {
t.pop_back();
} else {
t += s[i];
}
}
s = t;
for(int i = 0; i < s.size(); i++) {
if(s[i] == '1') {
ans += "0";
} else if (s[i] == '2') {
ans += "1";
} else if (s[i] == 'U') {
ans.pop_back();
} else if (s[i] == 'L') {
int cur = ans.size() - 1;
while(ans[cur] == '0') {
ans[cur] = '1';
--cur;
}
ans[cur] = '0';
} else {
int cur = ans.size() - 1;
while(ans[cur] == '1') {
ans[cur] = '0';
--cur;
}
ans[cur] = '1';
}
}
return ans;
}
void remove_same(string &p, string &q) {
string x = "";
string y = "";
int len = 0;
for(int i = 0; i < p.size() && i < q.size(); i++) {
if(p[i] == q[i]) {
len = i + 1;
} else {
break;
}
}
x = p;
y = q;
p = "";
q = "";
for(int i = len; i < x.size(); i++) p += x[i];
for(int i = len; i < y.size(); i++) q += y[i];
}
const int inf = 1e7;
int main(int argc, char const *argv[])
{
cin >> a >> b;
a = convert(a);
b = convert(b);
if(a.size() > b.size()) swap(a, b);
remove_same(a, b);
if(a > b) {
for(int i = 0; i < a.size(); i++) {
a[i] = a[i] == '0' ? '1' : '0';
}
for(int i = 0; i < b.size(); i++) {
b[i] = b[i] == '0' ? '1' : '0';
}
}
int sz = a.size();
while(a.size() < b.size()) a += "1";
long long ans = sz + b.size();
long long diff = 0;
for(int i = 1; i <= a.size(); i++) {
int p = a[i - 1] - '0';
int q = b[i - 1] - '0';
diff <<= 1;
diff += q - p;
ans = min(ans, diff + abs(sz - i) + abs((int)b.size() - i));
if(diff > inf) break;
}
cout << ans << endl;
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |