QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#656692#6128. Flippy SequencekazimiyuukaWA 199ms9576kbC++201.4kb2024-10-19 13:33:252024-10-19 13:33:25

Judging History

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

  • [2024-10-19 13:33:25]
  • 评测
  • 测评结果:WA
  • 用时:199ms
  • 内存:9576kb
  • [2024-10-19 13:33:25]
  • 提交

answer

#include <iostream>
#include <string>
#include <string.h>
#include <vector>
#include <algorithm>
#include <cmath>
#include <set>
#include <random>
#include <cstdlib>
#include <numeric>
#include <functional>
#include <queue>
using namespace std;
using ll = long long;
ll mod = 1e9 + 7;

void slove()
{
	int n;
	cin >> n;

	string s(n + 1, 0), t(n + 1, 0);

	for (int i = 1; i <= n; i++)
		cin >> s[i];
	for (int i = 1; i <= n; i++)
		cin >> t[i];

	vector<int> tmp(n + 1, 0);
	for (int i = 1; i <= n; i++)
		if (s[i] != t[i])
			tmp[i] = 1;
	vector<pair<int, int>> data;
	// 处理为连续的区间

	for (int i = 1; i <= n; i++)
	{
		if (tmp[i] == 1)
		{
			int j = i;
			while (j + 1 <= n && tmp[j + 1] == 1)
				j++;

			data.emplace_back(i, j);
			i = j;
		}
	}

	if (data.size() > 2)
	{
		cout << 0 << endl;
		return;
	}
	else if (data.size() == 2)
	{
		cout << 6 << endl;
	}
	else if (data.size() == 1)
	{
		int ans = n - (data[0].second - data[0].first + 1);
		ans += (data[0].second - data[0].first);
		ans *= 2;
		cout << ans << endl;
	}
	else {
		ll ans = (ll)n * (ll)(n - 1);
		cout << ans << endl;
	}
	return;

}

int main()
{
	//freopen("out.txt", "w", stdout);
	//freopen("in.txt", "r", stdin);
	ios::sync_with_stdio(false);

	cin.tie(0);
	cout.tie(0);

	int cnt = 1;
	cin >> cnt;

	while (cnt--)
	{
		slove();
	}
};

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3620kb

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: -100
Wrong Answer
time: 199ms
memory: 9576kb

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:

0
0
2
2
2
2
6
4
4
4
4
6
4
4
12
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
20
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
30
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
42
12
12
12
12
6
12
12
1...

result:

wrong answer 1st numbers differ - expected: '1', found: '0'