水质检测
作者:
Shang8
,
2025-04-13 14:22:17
· 河南
,
所有人可见
,
阅读 6
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 1e6 + 10;
string s1, s2;
ll vt[N];
ll sum;
signed main() {
cin >> s1 >> s2;
for (int i = 0; i < (ll)s1.size(); i++) {
if (s1[i] == '#') {
vt[i] = vt[i] + 1;
sum++;
}
if (s2[i] == '#') {
vt[i] = vt[i] + 2;
sum++;
}
}
ll ops = 0;
for (int i = 0; i < (ll) s1.size(); i++) {
if (vt[i] != 0) {
ops = i;
break;
}
}
ll sm = 0;
ll dan = -1;
ll disdan = -1;
ll dbl = -1;
ll disdbl = -1;
ll ans = 0;
for (ll i = ops; i < (ll) s1.size(), sm < sum; i++) {
if (vt[i] == 1) {
sm++;
if (dan != -1) {
if (dan == 1) {
ans += (i - disdan - 1);
dan = 1;
disdan = i;
continue;
} else if (dan == 2) {
ans += (i - disdan);
dbl = 1;
dan = -1;
disdbl = i;
continue;
}
} else if (dbl != -1) {
ans += (i - disdbl - 1);
dbl = -1;
dan = 1;
disdan = i;
continue;
}
dan = 1;
disdan = i;
} else if (vt[i] == 2) {
sm++;
if (dan != -1) {
if (dan == 2) {
ans += (i - disdan - 1);
dan = 2;
disdan = i;
} else if (dan == 1) {
ans += (i - disdan);
dan = -1;
dbl = 1;
disdbl = i;
}
continue;
} else if (dbl != -1) {
ans += (i - disdbl - 1);
dbl = -1;
dan = 2;
disdan = i;
continue;
}
dan = 2;
disdan = i;
} else if (vt[i] == 3) {
sm += 2;
if (dan != -1) {
ans += (i - disdan - 1);
dan = -1;
} else if (dbl != -1) {
ans += (i - disdbl - 1);
}
dbl = 1;
disdbl = i;
}
}
cout << ans << endl;
return 0;
}