QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#402579#4275. Escape SequencesI_Love_Sonechka#WA 1ms3756kbC++171.7kb2024-04-30 22:41:432024-04-30 22:41:45

Judging History

This is the latest submission verdict.

  • [2024-04-30 22:41:45]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 3756kb
  • [2024-04-30 22:41:43]
  • Submitted

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, 23)) - 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;
					}
					if(s[j] == 'b') {
						have = 0;
					}
					++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;
	for(int i = 0; i < 21; ++i) {
		if(f(i)) {
			cout << i << "\n";
			break;
		}
	}
	return ;
	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: 3756kb

input:

b
ab

output:

1

result:

ok 1 number(s): "1"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3596kb

input:

ababa
bab

output:

0

result:

ok 1 number(s): "0"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

a
b

output:

-1

result:

ok 1 number(s): "-1"

Test #4:

score: -100
Wrong Answer
time: 0ms
memory: 3592kb

input:

abbb
baa

output:

1

result:

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