Guest User

C

a guest
Jul 27th, 2021
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define times int t; cin >> t; while(t--)
  4. int main(void)
  5. {
  6.     ios::sync_with_stdio(false);
  7.     cin.tie(nullptr);
  8.     times
  9.     {
  10.         string s; cin >> s;
  11.         int fmax[10], smax[10], fmin[10], smin[10];
  12.  
  13.         if (s[0] == '1' || s[0] == '?') {
  14.             fmax[0] = 1;
  15.             fmin[0] = (s[0] == '1') ? 1 : 0;
  16.         }
  17.         else {
  18.             fmax[0] = fmin[0] = 0;
  19.         }
  20.         smax[0] = smin[0] = 0;
  21.         for (int i = 1; i < 10; i++) {
  22.             if (i%2) {
  23.                 smax[i] = (s[i] == '1' || s[i] == '?') ? smax[i-1]+1 : smax[i-1];
  24.                 smin[i] = (s[i] == '0' || s[i] == '?') ? smin[i-1] : smin[i-1]+1;
  25.                 fmax[i] = fmax[i-1];
  26.                 fmin[i] = fmin[i-1];
  27.             } else {
  28.                 fmax[i] =  (s[i] == '1' || s[i] == '?') ? fmax[i-1]+1 : fmax[i-1];
  29.                 fmin[i] =  (s[i] == '0' || s[i] == '?') ? fmin[i-1] : fmin[i-1]+1;
  30.                 smin[i] = smin[i-1];
  31.                 smax[i] = smax[i-1];
  32.             }
  33.         }
  34.         int ans = 0;
  35.         for (int i = 0; i < 10; i++) {
  36.             if (fmax[i] > smin[i] && fmax[i]-smin[i] > (10-(i+1))/2+1) {
  37.                 ans = i+1;
  38.                 break;
  39.             }
  40.             else if (smax[i] > fmin[i] && smax[i]-fmin[i] > (10-(i+1))/2) {
  41.                 ans = i+1;
  42.                 break;
  43.             }
  44.         }
  45.         if (ans == 0) ans = 10;
  46.         cout << ans << endl;
  47.     }
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment