/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 324.0 KiB
#2 Wrong Answer 5ms 576.0 KiB
#3 Wrong Answer 3ms 536.0 KiB

Code

// #pragma GCC optimize("O3,unroll-loops,Ofast")
// #pragma GCC target("avx2")
#include<bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
// using namespace __gnu_pbds;
#define int long long
#define endl '\n'

using namespace std;
using pii = pair<int, int>;
using tup = tuple<int, int, int>;

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
// template <class T> using ordered_set = tree<T, null_type,
//                          less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;

const int inf = 1e18;
const int mod = 1000000007;
const double eps = 1e-9;
const int N = 500005;

void preprocess() {}

void solve(int tc) {
    int n;
    string s;
    cin >> n >> s;

    int cnt = 0, cand = 0;
    vector<int> v;
    for(int i=0; i<n; i++) {
        if(s[i] == '0') continue;
        int j = i;
        while(j < n-1 and s[j+1] == '1') j++;

        int len = j - i + 1;
        cnt = max(cnt, len);
        if(i > 1 and s[i-2] == '1') cand = max(cand, len + v.back());

        v.push_back(len);
        i = j;
    }

    if(n % 2) cout << max(cand, cnt) << endl;
    else cout << cnt << endl;
}   
    
int32_t main() {
    cin.tie(NULL)->sync_with_stdio(false);
    cout.precision(10);

    preprocess();

    int T = 1;
    cin >> T;

    for (int i = 1; i <= T; i++) {  
        solve(i);
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1113 Fliping Game
Contest
Brain Booster #7
Language
C++17 (G++ 13.2.0)
Submit At
2024-11-05 14:35:47
Judged At
2024-11-11 02:33:04
Judged By
Score
5
Total Time
5ms
Peak Memory
576.0 KiB