QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#640069#6128. Flippy SequenceLJY_ljyAC ✓60ms5864kbC++111.2kb2024-10-14 03:08:282024-10-14 03:08:28

Judging History

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

  • [2024-10-14 03:08:28]
  • 评测
  • 测评结果:AC
  • 用时:60ms
  • 内存:5864kb
  • [2024-10-14 03:08:28]
  • 提交

answer

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

const int MAXN = 1e6 + 10;
char str1[MAXN], str2[MAXN];

int main() {
	int t;
	scanf("%d", &t);
	for (int u = 1; u <= t; u++) {
		int n;
		scanf("%d", &n);
		scanf("%s", str1 + 1);
		scanf("%s", str2 + 1);
		int s1 = -1, e1 = -1, s2 = -1, e2 = -1;
		bool flag = true;
		for (int i = 1; i <= n; i++) {
			if (str1[i] != str2[i]) {
				if (s1 == -1) {
					s1 = i;
				} 
				if (s1 != -1 && e1 != -1 && s2 == -1) {
					s2 = i;
				} 
				if (s1 != -1 && e1 != -1 && s2 != -1 && e2 != -1) {
					flag = false;
					break;
				}
			} else {
				if (s1 != -1 && e1 == -1 && s2 == -1)
					e1 = i - 1;
				if (s1 != -1 && e1 != -1 && s2 != -1 && e2 == -1)
					e2 = i - 1;
			}
		}
		if (s1 != -1 && e1 == -1 && s2 == -1) e1 = n;
		if (s1 != -1 && e1 != -1 && s2 != -1 && e2 == -1) e2 = n;
		//cout << s1 << " " << e1 << " " << s2 << " " << e2 << endl; 
		if (s1 == -1) {
			printf("%lld\n", n * (n + 1) / 2);
		} else if (s2 == -1) {
			printf("%lld\n", 2 * (e1 - s1 + s1 - 1 + n - e1));
		} else if (flag) {
			printf("6\n");
		} else 
			printf("0\n");
	}
	return 0;
} 

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 60ms
memory: 5864kb

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