Submission #27039502


Source Code Expand

#include <bits/stdc++.h>
// #define int long long
#define fi first
#define se second
#define ins insert
#define pb push_back
#define flu fflush(stdout)
#define pii std::pair<int, int>
using std::map;
using std::priority_queue;
using std::queue;
using std::set;
using std::stack;
using std::string;
using std::swap;
using std::unordered_map;
using std::unordered_set;
using std::vector;
int read(int x = 0, bool f = 0, char ch = getchar())
{
    while (ch < 48 or ch > 57)
        f = ch == 45, ch = getchar();
    while (48 <= ch and ch <= 57)
        x = x * 10 + ch - 48, ch = getchar();
    return f ? -x : x;
}
int pow(int x, int k, int P, int res = 1)
{
    for (; k; k >>= 1, x = x * x % P)
        if (k & 1)
            res = res * x % P;
    return res;
}

const int N = 1e6 + 5;
const int P = 998244353;

int n, m, sum;
string s, t;

void sub()
{
    int l = n;
    do
        t[l--] ^= 1, sum++;
    while (t[l + 1] & 1);
    sum -= 2;
}

void dfs(int d)
{
    if (!sum)
        return;
    if (t[d] & 1)
        putchar('1'), sum--, t[d] = '0';
    else
        putchar('0'), sub();
    dfs(d + 1);
}

void solve()
{
    std::cin >> n >> s;
    t.reserve(n + 1), m = s.size();
    for (int i = 1; i <= m; i++)
        t[i + n - m] = s[i - 1], sum += s[i - 1] - 48;

    putchar('1'), sub(), dfs(1), puts("");
}

signed main()
{
#ifndef ONLINE_JUDGE
    freopen("my_input.in", "r", stdin);
#endif
    for (int T = 1; T--; solve())
        ;
#ifndef ONLINE_JUDGE
    std::cerr << (double)clock() / CLOCKS_PER_SEC << std::endl;
#endif
    return 0;
}

Submission Info

Submission Time
Task C - Binary Strings
User TosakaUCW
Language C++ (GCC 9.2.1)
Score 500
Code Size 1640 Byte
Status AC
Exec Time 41 ms
Memory 5284 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 27
Set Name Test Cases
Sample 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt
All 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 9 ms 3560 KiB
00-sample-002.txt AC 2 ms 3528 KiB
00-sample-003.txt AC 5 ms 3492 KiB
01-001.txt AC 2 ms 3492 KiB
01-002.txt AC 3 ms 3608 KiB
01-003.txt AC 2 ms 3492 KiB
01-004.txt AC 20 ms 4208 KiB
01-005.txt AC 26 ms 4968 KiB
01-006.txt AC 23 ms 4392 KiB
01-007.txt AC 25 ms 4304 KiB
01-008.txt AC 6 ms 3564 KiB
01-009.txt AC 27 ms 4724 KiB
01-010.txt AC 32 ms 4976 KiB
01-011.txt AC 26 ms 4752 KiB
01-012.txt AC 40 ms 5216 KiB
01-013.txt AC 7 ms 3568 KiB
01-014.txt AC 34 ms 5216 KiB
01-015.txt AC 34 ms 5232 KiB
01-016.txt AC 35 ms 5284 KiB
01-017.txt AC 41 ms 5284 KiB
01-018.txt AC 8 ms 3564 KiB
01-019.txt AC 34 ms 5220 KiB
01-020.txt AC 35 ms 5280 KiB
01-021.txt AC 37 ms 5236 KiB
01-022.txt AC 36 ms 5228 KiB
01-023.txt AC 36 ms 5108 KiB
01-024.txt AC 35 ms 5188 KiB