QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#402576 | #4275. Escape Sequences | I_Love_Sonechka# | WA | 1ms | 3796kb | C++17 | 1.6kb | 2024-04-30 22:36:43 | 2024-04-30 22:36:44 |
Judging History
answer
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
// c++ short types
#define vt vector
typedef long long ll;
typedef long double ld;
void whattime() { cout << "finished in " << clock() * 1.0 / CLOCKS_PER_SEC << " sec" << endl; }
const ll inf = 1e18;
void solve() {
string s, t;
cin >> s >> t;
if(accumulate(s.begin(), s.end(), 0) - s.size() * 'a' < accumulate(t.begin(), t.end(), 0) - t.size() * 'a') {
cout << "-1\n";
return ;
}
auto Get1 = [](int k) {
return 1 << min(k, 22);
};
auto Get2 = [](int k) {
return (1 << min(k, 22)) - 1;
};
const int amax = 2e5;
auto f = [&](int k) {
int need = 0, j = 0;
for(int i = 0; i < (int)t.size(); ++i) {
if(t[i] == 'b') {
int have = 0;
bool flag = false;
while(j < (int)s.size()) {
if(s[j] == 'a') {
have += Get1(k);
} else {
have += Get2(k);
}
have = min(have, amax);
if(have >= need && s[j] == 'b') {
flag = 1;
++j;
break;
}
++j;
}
need = 0;
if(!flag) {
return false;
}
} else {
++need;
}
}
int have = 0;
for(int i = j; i < (int)s.size(); ++i) {
if(s[i] == 'a') {
have += Get1(k);
} else {
have += Get2(k);
}
have = min(have, amax);
}
return have >= need;
};
int l = -1, r = 20;
while(r - l > 1) {
int m = (l + r) >> 1;
if(f(m)) {
r = m;
} else {
l = m;
}
}
cout << r << "\n";
}
int main()
{
int tt = 1;
for(int t = 0; t < tt; ++t) {
solve();
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3476kb
input:
b ab
output:
1
result:
ok 1 number(s): "1"
Test #2:
score: 0
Accepted
time: 1ms
memory: 3796kb
input:
ababa bab
output:
0
result:
ok 1 number(s): "0"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3792kb
input:
a b
output:
-1
result:
ok 1 number(s): "-1"
Test #4:
score: -100
Wrong Answer
time: 0ms
memory: 3596kb
input:
abbb baa
output:
1
result:
wrong answer 1st numbers differ - expected: '2', found: '1'