QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#839674 | #9901. 匹配 | kenkenken# | 100 ✓ | 16ms | 22572kb | C++23 | 2.1kb | 2025-01-02 00:35:37 | 2025-01-02 00:35:38 |
Judging History
answer
#include <bits/stdc++.h>
#define F first
#define S second
#define pb push_back
#define pob pop_back
#define all(x) begin(x), end(x)
#define SZ(x) ssize(x)
using namespace std;
#ifdef LOCAL
#define HEHE freopen("in.txt", "r", stdin);
#define debug(HEHE...) cerr << #HEHE << " = ", dout(HEHE)
void dout() { cerr << "\n"; }
template<typename T, typename... U>
void dout(T t, U... u) { cerr << t << ' '; dout(u...); }
#else
#define HEHE ios_base::sync_with_stdio(0), cin.tie(0);
#define debug(...) 7122
#endif
#define FOR(i, a, b) for (int i = (a); i <= (b); i++)
#define chmax(a, b) a = (a) > (b) ? (a) : (b)
#define chmin(a, b) a = (a) < (b) ? (a) : (b)
#define int long long
const int MAXN = 1e6 + 5, mod = 1e9 + 9, M = 137;
int n;
string s, p;
int hs[MAXN], pw[MAXN];
void build() {
pw[0] = 1;
FOR (i, 1, n) {
hs[i] = (hs[i - 1] * M + s[i]) % mod;
pw[i] = pw[i - 1] * M % mod;
}
}
vector<int> pos;
signed main() {
HEHE
cin >> s >> p;
n = s.size();
s = " " + s; p = " " + p;
build();
FOR (i, 1, n) {
if (p[i] == '1') pos.pb(i);
}
if (!pos.size()) {
s[0] = 'a';
cout << s << '\n';
return 0;
}
auto ok = [&](int len) {
int mn = mod, mx = 0;
for (int i : pos) {
int x = hs[i + len - 1] + mod - pw[len] * hs[i - 1] % mod;
x %= mod;
chmax(mx, x);
chmin(mn, x);
}
return mn == mx;
};
int rb = n - pos.back() + 2;
int lb = 0;
while (lb < rb - 1) {
int mid = (lb + rb) / 2;
if (ok(mid)) lb = mid;
else rb = mid;
}
int len = lb;
int x = hs[pos[0] + len - 1] + mod - pw[len] * hs[pos[0] - 1] % mod;
x %= mod;
FOR (i, 1, n - len + 1) {
if (p[i] == '0') {
int y = hs[i + len - 1] + mod - pw[len] * hs[i - 1] % mod;
y %= mod;
if (x == y) return cout << "-1\n", 0;
}
}
if (len == 0) return cout << "-1\n", 0;
cout << s.substr(pos[0], len) << '\n';
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Pretests
Final Tests
Test #1:
score: 10
Accepted
time: 0ms
memory: 3548kb
input:
baaaaaaaaa 0111111110
output:
aa
result:
ok Correct output: valid string T.
Test #2:
score: 10
Accepted
time: 0ms
memory: 3544kb
input:
abbabbabab 0100100000
output:
bbab
result:
ok Correct output: valid string T.
Test #3:
score: 10
Accepted
time: 0ms
memory: 3740kb
input:
abbabaabba 0000000000
output:
aabbabaabba
result:
ok Correct output: valid string T.
Test #4:
score: 10
Accepted
time: 0ms
memory: 3592kb
input:
trtrttrtrttrttrtrttrtrttrttrtrttrttrtrttrtrttrttrtrtnrtrttrtkrtrttrttrtrttrtrttrttrtrttrttetrttrtrtt 0000000000001000000000000000000001000000000000000000000000000000000100000000000000000000000000000000
output:
ttrtrttrtrttrttrtrt
result:
ok Correct output: valid string T.
Test #5:
score: 10
Accepted
time: 0ms
memory: 3716kb
input:
bcljjabnbcljjabnbcljjagnbcljjabnbcljjabnbcljjabnbcljjahnbcljjabnbcljjabnbcljjabnbcljjabnbcljjabnbclj 0000000000000000000000010000000100000000000000000000000100000001000000000000000100000000000000000000
output:
-1
result:
ok Correct output: -1
Test #6:
score: 10
Accepted
time: 0ms
memory: 3496kb
input:
muumummuummumuumummumuummuumummuummumuummuumummumuumummuummumuumummumuummuumummumuumummuummumuummuumummuummumuumummumuummuumummuummumuummuumummumuumummuummumuummuumummuummumuumummumuummuumummumuumummuummumuumummumuummvumummuummumuummuumummumuumummuummumuumummumuummuumummumuumummuummumuummuumummuummu...
output:
mmuumummumuumummuummumuumummumuummuumummuummumuummuumummumuumummuummumuumummumuummuumummumuumummuummumuummuumummuummumuumummumuummuumummuummumuummuumummumuumummuummumuummuumummuummumuumummumuummuumummumuumummuummumuumummumuummuumummuummumuum
result:
ok Correct output: valid string T.
Test #7:
score: 10
Accepted
time: 0ms
memory: 3612kb
input:
mppmppmpmppmppmpmppmpmppmppmpmdpmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppm...
output:
mppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmp
result:
ok Correct output: valid string T.
Test #8:
score: 10
Accepted
time: 16ms
memory: 21660kb
input:
falgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgsh...
output:
falgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgsh...
result:
ok Correct output: valid string T.
Test #9:
score: 10
Accepted
time: 11ms
memory: 22572kb
input:
cnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaozn...
output:
znacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacna...
result:
ok Correct output: valid string T.
Test #10:
score: 10
Accepted
time: 9ms
memory: 22572kb
input:
bvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvov...
output:
bvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbv...
result:
ok Correct output: valid string T.
Extra Test:
score: 0
Extra Test Passed