Help me in solving CODETOWN problem

My issue

can’t find the bug in my code

My code

#include <bits/stdc++.h>

using namespace std;

int main() {
    int t;
    cin >> t;
    while (t--) {
        string s;
        cin >> s;
        int flag = 1;
        for (int i = 0; i < s.length(); i++) {
            if (i % 2 != 0 && i != 7) {
                if (s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U') {
                    flag = 1;
                } else {
                    flag = 0;
                    break;
                }
            } else {
                if (s[i] >= 'B' || s[i] <= 'Z' || !(s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U')) {
                    flag = 1;
                } else {
                    flag = 0;
                    break;
                }
            }
        }

        if (flag == 0) cout << "NO" << endl;
        else cout << "YES" << endl;
    }
}

Problem Link: Reach Codetown Practice Coding Problem

@aakarshverma
have corrected your code.
Just a little logical mistake .

#include <bits/stdc++.h>

using namespace std;

int main() {
    int t;
    cin >> t;
    while (t--) {
        string s;
        cin >> s;
        int flag = 1;
        for (int i = 0; i < s.length(); i++) {
            if (i % 2 != 0 && i != 7) {
                if (s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U') {
                    flag = 1;
                } else {
                    flag = 0;
                    break;
                }
            } else {
                if (s[i] >= 'B' && s[i] <= 'Z' && !(s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U')) {
                    flag = 1;
                } else {
                    flag = 0;
                    break;
                }
            }
        }

        if (flag == 0) cout << "NO" << endl;
        else cout << "YES" << endl;
    }
}