| Task: | Bittijono |
| Sender: | alli |
| Submission time: | 2026-01-19 15:35:07 +0200 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 21 |
| #2 | ACCEPTED | 16 |
| #3 | ACCEPTED | 63 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 3 | details |
| #2 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #3 | ACCEPTED | 0.00 s | 1, 3 | details |
| #4 | ACCEPTED | 0.00 s | 1, 3 | details |
| #5 | ACCEPTED | 0.00 s | 1, 3 | details |
| #6 | ACCEPTED | 0.01 s | 3 | details |
| #7 | ACCEPTED | 0.01 s | 2, 3 | details |
| #8 | ACCEPTED | 0.01 s | 3 | details |
| #9 | ACCEPTED | 0.01 s | 2, 3 | details |
| #10 | ACCEPTED | 0.01 s | 2, 3 | details |
| #11 | ACCEPTED | 0.01 s | 3 | details |
| #12 | ACCEPTED | 0.01 s | 2, 3 | details |
| #13 | ACCEPTED | 0.01 s | 3 | details |
| #14 | ACCEPTED | 0.01 s | 3 | details |
| #15 | ACCEPTED | 0.01 s | 3 | details |
| #16 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #17 | ACCEPTED | 0.00 s | 1, 3 | details |
| #18 | ACCEPTED | 0.00 s | 1, 3 | details |
| #19 | ACCEPTED | 0.01 s | 3 | details |
| #20 | ACCEPTED | 0.01 s | 3 | details |
Code
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int n, a, b;
string s1, s2;
struct X {
ll x;
ll m;
int l;
};
X d[101010];
X seuraava(const X& e, int k) {
ll nx = e.x + k;
return {
nx,
max(e.m,nx),
e.l+1
};
}
bool comp(const X& a, const X& b) {
return a.x < b.x;
}
int main(){
cin >> n >> a >> b >> s1 >> s2;
if (s1 == s2) {
cout << "0\n";
return 0;
}
const X x1 = {1,1,1};
const X x2 = {0,0,1};
d[0] = {0,0,0};
ll s = 0, u = 0;
for (int i = 1; i <= n; i++) {
if (s1[i-1] != s2[i-1]) {
s++;
d[i] = max(x1, seuraava(d[i-1],1), comp);
}else {
d[i] = max(x2, seuraava(d[i-1],-1), comp);
if ((d[i].m-d[i].x)*a>b) {
d[i] = x2;
}
}
}
/*for (int i = 1; i <= n; i++) {
cout << d[i].x << "/" << d[i].m << "/" << d[i].l << "\n";
}*/
int i = n;
while (i > 0 && d[i].l != -1) {
if (d[i].m*a > b) {
s -= d[i].m;
u++;
}
i -= d[i].l;
}
/*cout << "s: " << s << "\n";
cout << "u: " << u << "\n";*/
cout << s*a+u*b << "\n";
}Test details
Test 1 (public)
Group: 1, 3
Verdict: ACCEPTED
| input |
|---|
| 8 3 5 10110001 01101000 |
| correct output |
|---|
| 11 |
| user output |
|---|
| 11 |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 10 644 644 0111000100 0000010111 |
| correct output |
|---|
| 1932 |
| user output |
|---|
| 1932 |
Test 3
Group: 1, 3
Verdict: ACCEPTED
| input |
|---|
| 10 493 986 0001110000 0001100001 |
| correct output |
|---|
| 986 |
| user output |
|---|
| 986 |
Test 4
Group: 1, 3
Verdict: ACCEPTED
| input |
|---|
| 10 240 720 1011001110 1000000001 |
| correct output |
|---|
| 1200 |
| user output |
|---|
| 1200 |
Test 5
Group: 1, 3
Verdict: ACCEPTED
| input |
|---|
| 10 3 7 1110111111 0010010101 |
| correct output |
|---|
| 15 |
| user output |
|---|
| 15 |
Test 6
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 1 1000000000 001100110010101001010111000110... |
| correct output |
|---|
| 50252 |
| user output |
|---|
| 50252 |
Test 7
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 1000000000 1 110010000110110100110110101011... |
| correct output |
|---|
| 25055 |
| user output |
|---|
| 25055 |
Test 8
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 1000 1000000000 001001101010100000011110000101... |
| correct output |
|---|
| 50001000 |
| user output |
|---|
| 50001000 |
Test 9
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 1000000000 1000 101010110001010011011011101110... |
| correct output |
|---|
| 24939000 |
| user output |
|---|
| 24939000 |
Test 10
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 1000000000 1000000000 001000000001000000000010110111... |
| correct output |
|---|
| 25023000000000 |
| user output |
|---|
| 25023000000000 |
Test 11
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 123456789 987654321 100010110100011000001111001110... |
| correct output |
|---|
| 5475678967593 |
| user output |
|---|
| 5475678967593 |
Test 12
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 987654321 123456789 000100110000010110111101111101... |
| correct output |
|---|
| 3071481453531 |
| user output |
|---|
| 3071481453531 |
Test 13
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 1000000 1000000000 001100110010100011000111101100... |
| correct output |
|---|
| 49916000000 |
| user output |
|---|
| 49916000000 |
Test 14
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 10000000 1000000000 110111101101111110100101011000... |
| correct output |
|---|
| 494930000000 |
| user output |
|---|
| 494930000000 |
Test 15
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 100000000 1000000000 111110000010100011011100110010... |
| correct output |
|---|
| 4547300000000 |
| user output |
|---|
| 4547300000000 |
Test 16
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1 1 1 1 1 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 17
Group: 1, 3
Verdict: ACCEPTED
| input |
|---|
| 10 600 800 0000000000 1110111111 |
| correct output |
|---|
| 1400 |
| user output |
|---|
| 1400 |
Test 18
Group: 1, 3
Verdict: ACCEPTED
| input |
|---|
| 10 300 599 1101001010 0011010110 |
| correct output |
|---|
| 1198 |
| user output |
|---|
| 1198 |
Test 19
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 300000000 500000000 010011101001001010010101101101... |
| correct output |
|---|
| 10000000000000 |
| user output |
|---|
| 10000000000000 |
Test 20
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 60000 1000000000 110110111011010100001000011011... |
| correct output |
|---|
| 3000000000 |
| user output |
|---|
| 3000000000 |
