QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#690262#6128. Flippy SequenceDanRan02AC ✓40ms7128kbC++20979b2024-10-30 21:18:492024-10-30 21:18:50

Judging History

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

  • [2024-10-30 21:18:50]
  • 评测
  • 测评结果:AC
  • 用时:40ms
  • 内存:7128kb
  • [2024-10-30 21:18:49]
  • 提交

answer

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


void solve() {
	LL n;
	cin >> n;
	string s, t;
	cin >> s >> t;

	LL cnt1 = 0, cnt2 = 0, pre = 0, aft = 0;
	for (int i = 0; i < n; i++) {
		if (s[i] != t[i]) {
			int pos = i;
			while (i < n && s[i] != t[i]) i++;
			if (!cnt1) {
				cnt1 = i - pos;
				pre = pos;
				aft = n - i;
			} else if (!cnt2) {
				cnt2 = i - pos;
				aft = n - i;
			} else {
				cout << 0 << '\n';
				return;
			}
		}
//		cout << pre << ' ' << af/t << '\n';
	}
	LL res = 0;
	if (cnt1 < cnt2) swap(cnt1, cnt2);
	if (!cnt1 && !cnt2) {
		res = (n - 1) * n / 2 + n;
		cout << res << '\n';
	} else if (!cnt2) {
		if (pre) res += 2 * pre;
		if (aft) res += 2 * aft;
		if (cnt1 > 1) res += (cnt1 - 1) * 2;
		cout << res << '\n';
	} else {
		cout << 6 << '\n';
	}
}


int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	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: 3528kb

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: 40ms
memory: 7128kb

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