func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   void dbs(string str, T t) {     cerr << str <<   :   << t <<   n ;   }   template <class T, class... S>   void dbs(string str, T t, S... s) {     long long idx = str.find( , );     cerr << str.substr(0, idx) <<   :   << t <<  ,  ;     dbs(str.substr(idx + 1), s...);   }   template <class S, class T>   ostream& operator<<(ostream& os, const pair<S, T>& p) {     return os <<  (  << p.first <<  ,   << p.second <<  ) ;   }   template <class T>   ostream& operator<<(ostream& os, const vector<T>& p) {     os <<  [  ;     for (auto& it : p) os << it <<    ;     return os <<  ] ;   }   template <class T>   ostream& operator<<(ostream& os, const set<T>& p) {     os <<  [  ;     for (auto& it : p) os << it <<    ;     return os <<  ] ;   }   template <class S, class T>   ostream& operator<<(ostream& os, const map<S, T>& p) {     os <<  [  ;     for (auto& it : p) os << it <<    ;     return os <<  ] ;   }   template <class T>   void prc(T a, T b) {     cerr <<  [ ;     for (T i = a; i != b; ++i) {       if (i != a) cerr <<  ,  ;       cerr << *i;     }     cerr <<  ] n ;   }   int32_t main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     long long t, i, j, k, n, m, q;     long long x, y, l, r;     string s;     long long len;     cin >> len;     cin >> s;     vector<long long> pos(len + 7, -1);     long long cur = 1;     for (i = 0; i < len; i++) {       if (s[i] ==  8 ) {         pos[cur++] = i;       }     }     long long moves = (len - 11) / 2;     cur = min(cur - 1, moves);     dbs( cur, pos[cur], pos[cur + 1] , cur, pos[cur], pos[cur + 1]);     if (pos[cur + 1] == -1 || pos[cur + 1] - (cur) > moves) {       cout <<  NO  << endl;     } else {       cout <<  YES  << endl;     }     return 0;   }   