← Home
For problem statement at 1000-1999/1600-1699/1680-1689/1680/problemE.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1680-1689/1680/verifierE.go ends with All 100 tests passed

seed: 1773468005657530487 can you fix the verifier? #include <bits/stdc++.h>
#define endl "\n"
#define cy {puts("YES"); return;}
#define cn {puts("NO"); return;}
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3f
using namespace std;
 
typedef pair<int, int> PII;
typedef tuple<int, int, int, int> St;
typedef long long ll;
 
const int N = 2e5 + 10;
int dx[] = {1, -1, 0, 0}, dy[] = {0, 0, 1, -1};
 
void solve() {
    int n; cin >> n;
    string s0, s1; cin >> s0 >> s1;
    s0 = ' ' + s0;
    s1 = ' ' + s1;
 
    int l = -1, r = -1;
 
    for (int i = 1; i <= n; i ++ ) {
        if (s0[i] == '*' || s1[i] == '*') {
            l = i;
            break;
        }
    }
 
    for (int i = n; i >= 1; i -- ) {
        if (s0[i] == '*' || s1[i] == '*') {
            r = i;
            break;
        }
    }
 
    vector<array<int, 2>> dp(n + 1);
 
    if (s0[l] == s1[l]) {
        dp[l][0] = dp[l][1] = 1;
    } else if (s0[l] == '*') {
        dp[l][0] = 0;
        dp[l][1] = 1;
    } else {
        dp[l][0] = 1;
        dp[l][1] = 0;
    }
 
    for (int i = l + 1; i <= r; i ++ ) {
        if (s0[i] == '.' && s1[i] == '.') {
 
            dp[i][0] = min(dp[i - 1][0] + 1, dp[i - 1][1] + 2);
            dp[i][1] = min(dp[i - 1][1] + 1, dp[i - 1][0] + 2);
 
        } else if (s0[i] == '*' && s1[i] == '*') {
 
            dp[i][0] = min(dp[i - 1][0] + 2, dp[i - 1][1] + 2);
            dp[i][1] = min(dp[i - 1][1] + 2, dp[i - 1][0] + 2);
 
        } else if (s0[i] == '*') {
 
            dp[i][0] = min(dp[i - 1][0] + 1, dp[i - 1][1] + 2);
            dp[i][1] = min(dp[i - 1][1] + 2, dp[i - 1][0] + 2);
 
        } else if (s1[i] == '*') {
 
            dp[i][1] = min(dp[i - 1][1] + 1, dp[i - 1][0] + 2);
            dp[i][0] = min(dp[i - 1][0] + 2, dp[i - 1][1] + 2);
 
        }
    }
 
    cout << min(dp[r][0], dp[r][1]) << endl;
}
 
int main() {
 
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
 
    int T = 1;
    cin >> T;
 
    while (T -- ) {
        solve();
    }
 
    return 0;
}