QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#461902#8058. Binary vs TernaryhhoppitreeWA 2ms4080kbC++172.0kb2024-07-03 10:06:422024-07-03 10:06:42

Judging History

你现在查看的是最新测评结果

  • [2024-07-03 10:06:42]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:4080kb
  • [2024-07-03 10:06:42]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

signed main() {
    int te; scanf("%d", &te);
    while (te--) {
        string S, T;
        cin >> S >> T;
        if (S == "1") {
            if (T == "1") puts("0");
            else puts("-1");
            continue;
        }
        if (T == "1") {
            puts("-1");
            continue;
        }
        if (T == "10") {
            if (S == "10") puts("0");
            else puts("-1");
            continue;
        }
        vector< pair<int, int> > res;
        for (int i = 0; i < S.size(); ++i) {
            if (S[i] == '0') {
                res.push_back(make_pair(i - 1, i));
                S[i] = '1';
            }
        }
        while (S.size() > 2) {
            res.push_back(make_pair(0, 1));
            res.push_back(make_pair(1, 3));
            S.pop_back();
        }
        if (count(T.begin(), T.end(), '1') == 1) {
            res.push_back(make_pair(0, 1));
            for (int i = 3; i < T.size(); ++i) {
                res.push_back(make_pair(0, 1));
                res.push_back(make_pair(0, 1));
            }
        } else {
            for (int i = (int)T.size() - 1; i >= 2; --i) {
                if (T[i] == '0') {
                    res.push_back(make_pair(0, 1));
                    res.push_back(make_pair(0, 1));
                } else {
                    res.push_back(make_pair(0, 1));
                    res.push_back(make_pair(0, 1));
                    res.push_back(make_pair(1, 2));
                }
            }
            if (T[1] == '0') {
                res.push_back(make_pair(0, 1));
                for (int i = 1; ; ++i) {
                    if (T[i] == '0' && T[i + 1] == '1') {
                        res.push_back(make_pair(i + 1, i + 2));
                        break;
                    }
                }
            }
        }
        printf("%d\n", (int)res.size());
        for (auto [x, y] : res) {
            printf("%d %d\n", x + 1, y + 1);
        }
    }
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3820kb

input:

3
1
111
110110
1101010
1111
111111

output:

-1
22
2 3
5 6
1 2
2 4
1 2
2 4
1 2
2 4
1 2
2 4
1 2
1 2
1 2
1 2
2 3
1 2
1 2
1 2
1 2
2 3
1 2
1 2
16
1 2
2 4
1 2
2 4
1 2
1 2
2 3
1 2
1 2
2 3
1 2
1 2
2 3
1 2
1 2
2 3

result:

ok Haitang Suki (3 test cases)

Test #2:

score: -100
Wrong Answer
time: 2ms
memory: 4080kb

input:

1000
11100
111
1
11110
10001
10
1011
1111
10
1110
1100
11
11010
11
110
11
1
10001
10110
10
10
11111
10000
1001
10
1
11
10111
11
10
1
100
11
10100
1
10
101
11
1100
110
11
1110
1
1001
1
11111
10
10010
10
11001
110
1010
10011
1110
10100
1001
1001
101
100
1
1001
11
101
11
101
1001
1
1
1011
1
10
10
1011
...

output:

11
3 4
4 5
1 2
2 4
1 2
2 4
1 2
2 4
1 2
1 2
2 3
-1
-1
11
1 2
1 2
2 4
1 2
2 4
1 2
1 2
2 3
1 2
1 2
2 3
6
1 2
1 2
1 2
1 2
1 2
2 3
6
2 3
3 4
1 2
2 4
1 2
2 4
8
2 3
4 5
1 2
2 4
1 2
2 4
1 2
2 4
3
2 3
1 2
2 4
-1
-1
10
1 2
1 2
1 2
2 3
1 2
1 2
2 3
1 2
1 2
2 3
17
1 2
2 3
3 4
4 5
1 2
2 4
1 2
2 4
1 2
2 4
1 2
1 2
...

result:

wrong answer Pans=-1, Jans!=-1 (test case 3)