QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#721491 | #6128. Flippy Sequence | 0x3fffffff | AC ✓ | 43ms | 7164kb | C++23 | 1.3kb | 2024-11-07 16:14:27 | 2024-11-07 16:14:28 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
void solve() {
int n;cin >> n;
string a, b;
cin >> a >> b;
a = ' ' + a;
b = ' ' + b;
if (a == b) {
cout << n * (n + 1) / 2 << "\n";return;
}
int l = 1, r = n;
while (l <= n) {
if (a[l] == b[l])l++;
else break;
}
while (r >= 1) {
if (a[r] == b[r])r--;
else break;
}
if (r < l) {
cout << 1 << "\n";return;
}
int ok = 0;
for (int i = l;i <= r;i++) {
if (a[i] == b[i]) {
ok++;
int j = i;
while (a[j] == b[j] and j <= r)j++;
i = j - 1;
}
}
if (ok == 0) {
int ans = r - l;
int s = l - 1;
ans += s;
s = n - r;
ans += s;
ans *= 2;
cout << ans << "\n";
return;
}
else if (ok == 1) {
cout << 6 << "\n";return;
}
else {
int ans = 0;
cout << ans << "\n";
}
// cout << l << " " << r << "\n";
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
int T = 1;
#ifdef LOCAL
freopen("data.in", "r", stdin);
freopen("data.out", "w", stdout);
#endif
cin >> T;
while (T--)
solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3780kb
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: 43ms
memory: 7164kb
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