Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- //
- #define ll long long
- #define ull unsigned long long
- #define mx 100010
- #define mod 1000000007
- #define inf INT_MAX
- #define pi acos(-1.0)
- #define endl '\n'
- #define pb push_back
- #define pll pair<ll, ll>
- #define vll vector<ll>
- #define vpll vector<pll>
- #define Fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
- //
- int main() {
- ll t;
- cin >> t;
- while (t--) {
- ll n;
- cin >> n;
- string s, p;
- cin >> s >> p;
- vll charCount(200, 0);
- for (ll i = 0; i < s.length(); i++) {
- if (s[i] == '?' || p[i] == '?') {
- if (s[i] == p[i]) continue;
- ll x = p[i] - '0', y = s[i] - '0';
- //cout << x << " " << y << endl; //! test
- if (s[i] == '?') charCount[x]++;
- else charCount[y]++;
- }
- }
- ll charIdxV = 0, charIdxC = 0, tempV = 0, tempC = 0;
- for (ll i = 49; i <= 74; i++) {
- //cout << charCount[i] << " "; //! test
- if (tempV < charCount[i] && (i == 49 || i == 53 || i == 57 || i == 63 || i == 69)) {
- tempV = charCount[i];
- charIdxV = i;
- }
- else if (tempC < charCount[i] && (i != 49 && i != 53 && i != 57 && i != 63 && i != 69)) {
- tempC = charCount[i];
- charIdxC = i;
- }
- }
- ll countV = 0, countC = 0, countN = 0;
- bool cons = true, vow = true;
- string p1 = p, s1 = s;
- if (charIdxC != 0) charIdxC += 48;
- else charIdxC = 98;
- if (charIdxV != 0) charIdxV += 48;
- else charIdxV = 97;
- //cout << charIdxV << " " << charIdxC << endl; //! test
- for (ll i = 0; i < s.length(); i++) {
- if (s[i] == '?') s[i] = (char)charIdxV;
- if (p[i] == '?') p[i] = (char)charIdxV;
- //cout << s[i] << " " << p[i] << endl; //! test
- if (s[i] != p[i]) countV++;
- if ((s[i] != p[i]) && (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u') && (p[i] == 'a' || p[i] == 'e' || p[i] == 'i' || p[i] == 'o' || p[i] == 'u')) {
- countV++;
- //cout << "here" << endl; //! test
- }
- else if ((s[i] != p[i]) && (s[i] != 'a' && s[i] != 'e' && s[i] != 'i' && s[i] != 'o' && s[i] != 'u') && (p[i] != 'a' && p[i] != 'e' && p[i] != 'i' && p[i] != 'o' && p[i] != 'u')) countV++;
- if (s1[i] == '?') s1[i] = (char)charIdxC;
- if (p1[i] == '?') p1[i] = (char)charIdxC;
- if (s1[i] != p1[i]) countC++;
- if ((s1[i] != p1[i]) && (s1[i] != 'a' && s1[i] != 'e' && s1[i] != 'i' && s1[i] != 'o' && s1[i] != 'u') && (p1[i] != 'a' && p1[i] != 'e' && p1[i] != 'i' && p1[i] != 'o' && p1[i] != 'u')) countC++;
- else if ((s1[i] != p1[i]) && (s1[i] == 'a' || s1[i] == 'e' || s1[i] == 'i' || s1[i] == 'o' || s1[i] == 'u') && (p1[i] == 'a' || p1[i] == 'e' || p1[i] == 'i' || p1[i] == 'o' || p1[i] == 'u')) {
- countC++;
- //cout << "here" << endl; //! test
- }
- }
- //cout << countV << " " << countC << endl; //! test
- // if (charIdxV == 0 && cons == false) cout << countV << endl;
- // else if (charIdxC == 0 && vow == false) cout << countC << endl;
- // else if (!cons) cout << countV << endl;
- // else if (!vow) cout << countC << endl;
- // else cout << 0 << endl;
- //cout << " " << countN << endl;
- cout << min(countV, countC) << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement