提出 #66357882


ソースコード 拡げる

#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <bitset>
#include <vector>
using namespace std;

typedef pair<int, int> pii;
const int MAXN = 2e5 + 5;

int main() {
    cin.tie(0) -> sync_with_stdio(0);
    int T;
    cin >> T;
    while (T --) {
        string s;
        vector<pii> b;
        vector<int> pre;
        int n, st, end, tot1 = 0, cur, ans, minv = 1e9, v;
        cin >> n >> s;
        for (int i = 0; i < n; ) {
            if (s[i] == '1') {
                st = i + 1;
                while (i < n && s[i] == '1') {
                    i ++;
                }
                end = i;
                b.push_back({st, end});
            } else {
                i ++;
            }
        }
        for (auto i : b) {
            tot1 += i.second - i.first + 1;
        }
        ans = min(tot1, n - tot1);
        if (!b.size()) {
            cout << ans << '\n';
            continue;
        }
        pre.resize(b.size() + 1);
        for (int i = 1; i <= b.size(); i ++) {
            pre[i] = pre[i - 1] + b[i - 1].second - b[i - 1].first + 1;
        }
        for (int i = 0; i < b.size(); i ++) {
            end = b[i].second;
            cur = end + tot1 - (pre[i + 1] << 1);
            ans = min(cur, ans);
        }
        for (int i = 0; i < b.size(); i ++) {
            st = b[i].first;
            cur = n - st + 1 + (pre[i] << 1) - tot1;
            ans = min(cur, ans);
        }
        for (int i = 0; i < b.size(); i ++) {
            auto [st, end] = b[i];
            v = -st + (pre[i] << 1);
            minv = min(v, minv);
            cur = end - (pre[i + 1] << 1) + minv + tot1 + 1;
            ans = min(cur, ans);
        }
        cout << ans << '\n';
    }
    return 0;
}

提出情報

提出日時
問題 D - Flip to Gather
ユーザ FlowerAccepted
言語 C++ 17 (gcc 12.2)
得点 400
コード長 1833 Byte
結果 AC
実行時間 6 ms
メモリ 4648 KiB

コンパイルエラー

Main.cpp: In function ‘int main()’:
Main.cpp:43:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   43 |         for (int i = 1; i <= b.size(); i ++) {
      |                         ~~^~~~~~~~~~~
Main.cpp:46:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   46 |         for (int i = 0; i < b.size(); i ++) {
      |                         ~~^~~~~~~~~~
Main.cpp:51:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   51 |         for (int i = 0; i < b.size(); i ++) {
      |                         ~~^~~~~~~~~~
Main.cpp:56:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   56 |         for (int i = 0; i < b.size(); i ++) {
      |                         ~~^~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 2
AC × 30
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3532 KiB
00_sample_01.txt AC 1 ms 3456 KiB
01_test_00.txt AC 6 ms 3484 KiB
01_test_01.txt AC 5 ms 3664 KiB
01_test_02.txt AC 5 ms 3536 KiB
01_test_03.txt AC 5 ms 3660 KiB
01_test_04.txt AC 5 ms 3484 KiB
01_test_05.txt AC 6 ms 3464 KiB
01_test_06.txt AC 5 ms 3532 KiB
01_test_07.txt AC 5 ms 3440 KiB
01_test_08.txt AC 5 ms 3404 KiB
01_test_09.txt AC 4 ms 3532 KiB
01_test_10.txt AC 3 ms 3544 KiB
01_test_11.txt AC 3 ms 3460 KiB
01_test_12.txt AC 3 ms 3540 KiB
01_test_13.txt AC 2 ms 3652 KiB
01_test_14.txt AC 2 ms 3668 KiB
01_test_15.txt AC 2 ms 3464 KiB
01_test_16.txt AC 2 ms 3484 KiB
01_test_17.txt AC 2 ms 3540 KiB
01_test_18.txt AC 2 ms 3620 KiB
01_test_19.txt AC 3 ms 3904 KiB
01_test_20.txt AC 3 ms 3812 KiB
01_test_21.txt AC 3 ms 3868 KiB
01_test_22.txt AC 3 ms 4040 KiB
01_test_23.txt AC 2 ms 3660 KiB
01_test_24.txt AC 2 ms 3796 KiB
01_test_25.txt AC 1 ms 3652 KiB
01_test_26.txt AC 2 ms 3640 KiB
01_test_27.txt AC 3 ms 4648 KiB