QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#693929#6128. Flippy Sequenceproven#AC ✓52ms16416kbC++201.1kb2024-10-31 16:58:502024-10-31 16:58:50

Judging History

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

  • [2024-10-31 16:58:50]
  • 评测
  • 测评结果:AC
  • 用时:52ms
  • 内存:16416kb
  • [2024-10-31 16:58:50]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

#define endl '\n'
#define int long long

void solve() {
    int n; cin >> n;
    string a, b;
    cin >> a >> b;
    if(n == 1 && a != b) {
        cout << 0 << endl;
        return;
    }
    vector<int> c(n + 1);
    for(int i = 0;i < n;i++) {
        c[i + 1] = (a[i] != b[i]);
    }
    int num = 0;
    int l, r;
    for(int i = 1;i <= n;i++) {
        if(c[i]) {
            int j = i;
            l = i;
            while(j + 1 <= n && c[j + 1]) j++;
            r = j;
            num++;
            i = j;
        }
    }
    if(num > 2) {
        cout << 0 << endl;
    }
    else if(num == 0) {
        cout << n * (n + 1) / 2 << endl;
    }
    else if(num == 1) {
        int len = r - l + 1;
        int tmp = (len - 1) * 2;
        tmp += 2 * (l - 1 + n - r);
        cout << tmp << endl;
    }
    else {
        cout << 6 << endl;
    }
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int T = 1;
    cin >> T;
    while (T--) {
        solve();
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 52ms
memory: 16416kb

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