QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#257612#6128. Flippy SequenceHe2717970784AC ✓104ms7300kbC++17960b2023-11-19 11:01:412023-11-19 11:01:41

Judging History

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

  • [2023-11-19 11:01:41]
  • 评测
  • 测评结果:AC
  • 用时:104ms
  • 内存:7300kb
  • [2023-11-19 11:01:41]
  • 提交

answer

#include<iostream>
#include<vector>
#include<string>
using namespace std;

int solve() {
	int n = 0;
	cin >> n;
	string a, b;
	cin >> a >> b;
	a = ' ' + a;
	b = ' ' + b;
	vector<pair<int, int>>v;
	for (int i = 1; i <= n; i++) {
		if (a[i] == b[i]) {
			continue;
		}
		if (v.empty() || v.back().second != i - 1) {
			v.push_back(make_pair(i, i));
		}
		else {
			v.back().second++;
		}
	}
	if (v.size() > 2) {
		return 0;
	}
	if (v.size() == 2) {
		return 6;
	}
	if (v.size() == 1) {
		int len = v.back().second - v.back().first + 1;
		int ans = len - 1;
		len = n - v.back().second;
		ans += len;
		len = v.back().first - 1;
		ans += len;
		ans *= 2;
		return ans;
	}
	if (v.size() == 0) {
		int ans = n * (n - 1) / 2 + n;
		return ans;
	}
}

int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int t = 0;
	cin >> t;
	while (t--) {
		int ans = solve();
		cout << ans << endl;
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 104ms
memory: 7300kb

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