QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#105250#6128. Flippy SequenceSorting#AC ✓67ms7064kbC++231.3kb2023-05-13 19:46:062023-05-13 19:46:09

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-05-13 19:46:09]
  • 评测
  • 测评结果:AC
  • 用时:67ms
  • 内存:7064kb
  • [2023-05-13 19:46:06]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
template<class T> void check_min(T &a, const T &b){ a = (a < b) ? a : b; }
template<class T> void check_max(T &a, const T &b){ a = (a > b) ? a : b; }
#define all(x) (x).begin(), (x).end()

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int t;
    cin >> t;

    while(t--){
        int n;
        cin >> n;

        string s, t;
        cin >> s >> t;

        for(int i = 0; i < n; ++i)
            s[i] = ((s[i] - '0') ^ (t[i] - '0')) + '0';

        vector<int> v;
        int curr = 0;
        for(int i = 0; i < n; ++i){
            if(s[i] == '0'){
                if(curr)
                    v.push_back(curr);
                curr = 0;
            }
            else{
                ++curr;
            }
        }
        if(curr)
            v.push_back(curr);

        if(v.size() > 2)
            cout << "0\n";
        else{
            if(v.size() == 0){
                ll ans = (ll)n * (ll)(n + 1) / 2;
                cout << ans << "\n";
            }
            else if(v.size() == 1){
                cout << (n - 1) * 2 << "\n";
            }
            else{
                cout << 6 << "\n";
            }
        }
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
1
1
0
2
00
11
5
01010
00111

output:

0
2
6

result:

ok 3 number(s): "0 2 6"

Test #2:

score: 0
Accepted
time: 67ms
memory: 7064kb

input:

126648
1
0
0
1
1
0
2
01
01
2
01
11
2
10
11
2
11
00
3
011
011
3
010
110
3
011
001
3
111
001
3
001
000
3
101
000
3
011
000
3
111
000
4
1111
1111
4
1110
0110
4
0010
0110
4
1011
0111
4
1001
1011
4
0100
1110
4
0000
0110
4
0111
1001
4
1001
1000
4
1011
0010
4
0001
0100
4
1000
0101
4
0100
0111
4
1101
0110
4...

output:

1
0
3
2
2
2
6
4
4
4
4
6
4
4
10
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
15
8
8
8
8
6
8
8
8
6
6
6
8
6
8
8
8
6
6
6
6
0
6
6
8
6
6
6
8
6
8
8
21
10
10
10
10
6
10
10
10
6
6
6
10
6
10
10
10
6
6
6
6
0
6
6
10
6
6
6
10
6
10
10
10
6
6
6
6
0
6
6
6
0
0
0
6
0
6
6
10
6
6
6
6
0
6
6
10
6
6
6
10
6
10
10
28
12
12
12
12
6
12
12
1...

result:

ok 126648 numbers