QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#496850#6128. Flippy Sequenceucup-team1198#AC ✓55ms11812kbC++201.1kb2024-07-28 16:31:202024-07-28 16:31:20

Judging History

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

  • [2024-07-28 16:31:20]
  • 评测
  • 测评结果:AC
  • 用时:55ms
  • 内存:11812kb
  • [2024-07-28 16:31:20]
  • 提交

answer

#include <map>
#include <set>
#include <array>
#include <cmath>
#include <deque>
#include <bitset>
#include <random>
#include <string>
#include <vector>
#include <cassert>
#include <complex>
#include <iomanip>
#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <unordered_set>

using namespace std;

void solve() {
  int n;
  cin >> n;
  string s, t;
  cin >> s >> t;
  vector<int> A(n);
  for (int i = 0; i < n; ++i)
    A[i] = (s[i] - '0') ^ (t[i] - '0');
  vector<pair<int, int>> segms;
  for (int i = 0; i < n;) {
    if (A[i] == 0) {
      ++i;
      continue;
    }
    int j = i;
    while (j < n && A[j] == 1)
      ++j;
    segms.emplace_back(i, j);
    i = j;
  }
  if (segms.empty()) {
    cout << n * 1ll * (n + 1) / 2 << '\n';
  } else if (segms.size() == 1) {
    cout << 2 * (n - 1) << '\n';
  } else if (segms.size() == 2) {
    cout << 6 << '\n';
  } else {
    cout << 0 << '\n';
  }
}

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  
  int t;
  cin >> t;
  while (t--) {
    solve();
  }
  return 0;
}

詳細信息

Test #1:

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

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: 55ms
memory: 11812kb

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