QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#691225#6128. Flippy SequenceOIer_kzc#AC ✓46ms5892kbC++17828b2024-10-31 10:29:122024-10-31 10:29:12

Judging History

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

  • [2024-10-31 10:29:12]
  • 评测
  • 测评结果:AC
  • 用时:46ms
  • 内存:5892kb
  • [2024-10-31 10:29:12]
  • 提交

answer

#include <stdio.h>
#include <string.h>

#include <vector>
#include <algorithm>

#define eb emplace_back

using namespace std;

typedef long long LL;
constexpr int N = 1000005;

int n;
char a[N], b[N];
struct Pair {
	int x, y;
	Pair() {}
	Pair(int _x, int _y) : x(_x), y(_y) {}
};
vector<Pair> seq;

int main() {
	int task;
	for (scanf("%d", &task); task--; ) {
		scanf("%d%s%s", &n, a + 1, b + 1);
		seq.clear();
		for (int i = 1, j; (j = i) <= n; i = j + 1) {
			while (j <= n && a[j] != b[j]) {
				++j;
			}
			if (a[i] != b[i]) {
				seq.eb(i, j - 1);
			}
		}
		if (seq.size() >= 3) {
			puts("0");
		} else if (seq.size() == 2) {
			puts("6");
		} else if (seq.size() == 1) {
			printf("%d\n", 2 * n - 2);
		} else {
			printf("%lld\n", n * (n + 1ll) / 2);
		}
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 46ms
memory: 5892kb

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