QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#544176 | #4275. Escape Sequences | kuaiqujuan | TL | 0ms | 3692kb | C++14 | 1.5kb | 2024-09-02 11:12:20 | 2024-09-02 11:12:20 |
Judging History
answer
#include <bits/stdc++.h>
int main() {
std::cin.tie(nullptr) -> sync_with_stdio(false);
std::string s, t;
std::cin >> s >> t;
int n = (int)s.size(), m = (int)t.size();
int ans = 0;
while (m > 0) {
std::vector<int> f(m + 1);
for (int i = 1, j = 0; i < m; i++) {
while (j && t[i] != t[j]) {
j = f[j];
}
j += (t[i] == t[j]);
f[i + 1] = j;
}
bool match = false;
for (int i = 0, j = 0; i < n; i++) {
while (j && s[i] != t[j]) {
j = t[j];
}
j += (s[i] == t[j]);
if (j == m) {
match = true;
break;
}
}
if (match) {
break;
}
int p = -1;
for (int i = 0; i < m; i++) {
if (t[i] == 'b') {
if (p == -1) {
p = i % 2;
} else if (i % 2 != p) {
std::cout << -1;
exit(0);
}
}
}
if (p == -1) {
p = 1;
}
std:: string nt;
int i;
for (i = p; i < m; i += 2) {
nt += t[i];
}
if (i == m) {
n = s.size() - 1;
}
if (nt == t) {
std::cout << -1;
exit(0);
}
t = nt;
m = t.size();
ans++;
}
std::cout << ans;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3576kb
input:
b ab
output:
1
result:
ok 1 number(s): "1"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
ababa bab
output:
0
result:
ok 1 number(s): "0"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3456kb
input:
a b
output:
-1
result:
ok 1 number(s): "-1"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
abbb baa
output:
2
result:
ok 1 number(s): "2"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3692kb
input:
abaabb abaab
output:
0
result:
ok 1 number(s): "0"
Test #6:
score: -100
Time Limit Exceeded
input:
aaab aaba