- Language:
- Time limit: 1.00 s
- Memory limit: 512 MB
Annettuna on kaksi bittijonoa, joissa molemmissa on n bittiä. Tehtäväsi on muuttaa ensimmäinen bittijono toiseksi kahden operaation avulla:
- Operaatio 1: Muuta mikä tahansa yksi bitti käänteiseksi (kustannus a)
- Operaatio 2: Muuta kaikki bitit tietyltä väliltä käänteisiksi (kustannus b)
Saat suorittaa kummankin operaation haluamasi määrän kertoja. Mikä on pienin mahdollinen kokonaiskustannus?
Syöte
Ensimmäisellä rivillä on kolme kokonaislukua n, a ja b: bittijonon pituus sekä operaatioiden kustannukset.
Tämän jälkeen tulee kaksi riviä, jotka sisältävät bittijonot.
Tuloste
Tulosta yksi kokonaisluku: pienin kokonaiskustannus.
Esimerkki
Syöte:
8 3 5 10110001 01101000
Tuloste:
11
Selitys: Suoritetaan ensin operaatio 2 välille 1 \dots 5, jolloin bittijonosta 10110001 tulee 01001001. Tämän jälkeen suoritetaan operaatio 1 kohtiin 3 ja 8, jolloin tuloksena on lopullinen bittijono 01101000. Operaatioiden kustannus on 5+3+3=11.
Osatehtävä 1 (21 pistettä)
- 1 \le n \le 10
- 1 \le a, b \le 1000
Osatehtävä 2 (16 pistettä)
- 1 \le n \le 10^5
- 1 \le a, b \le 10^9
- a \ge b
Osatehtävä 3 (63 pistettä)
- 1 \le n \le 10^5
- 1 \le a, b \le 10^9
