![]() |
Az I/S. 53. feladat (2021. április) |
I/S. 53. Adott egy N hosszú bitsorozat. Az i-edik bitet B[i]-vel jelöljük. Minden lehetséges 1≤x≤y≤N-re a bitsorozat x-edik elemétől az y-adik eleméig terjedő részét kiegyensúlyozottnak nevezzük, ha ugyanannyi 1-es értékű bitet tartalmaz, mint 0-s értékűt (tehát ha a B[x], B[x+1], ..., B[y] bitek közt azonos számú az 1-es és a 0-s értékű).
Adjuk meg, hogy hány olyan x, y páros van, amire kiegyensúlyozott részt kapunk.
Bemenet: az első sor tartalmazza az N számot, a második az N hosszú bitsorozatot.
A kimenet egyetlen sorában adjuk meg, hogy hány kiegyensúlyozott rész van.
Bemenet (a / jel sortörést jelent) | Kimenet |
5 /10101 | 6 |
A keresett x, y párosok: (1,2), (2,3), (3,4), (4,5), (1,4), (2,5).
Korlátok: 1≤N≤105.
Értékelés: a pontok 50%-a kapható, ha N≤1000.
Beküldendő egy is53.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztői környezetben futtatható.
(10 pont)
A beküldési határidő 2021. május 17-én LEJÁRT.
Minden 0-t írjunk át -1-re. Ekkor a kérdés, hogy hány olyan intervallum van, ahol az összeg 0.
Naívan a megoldás köbös,
Prefix összegeket számolva négyzetes,
Az előlő megoldás gyorsítható lineáris futási időre Varga Péter által leírt módon:
Statisztika:
13 dolgozat érkezett. 10 pontot kapott: Horcsin Bálint, Kovács Alex, Melján Dávid Gergő, Tóth 057 Bálint, Varga 256 Péter. 9 pontot kapott: Ürmössy Dorottya. 6 pontot kapott: 4 versenyző. 5 pontot kapott: 1 versenyző. 4 pontot kapott: 1 versenyző. 2 pontot kapott: 1 versenyző.
A KöMaL 2021. áprilisi informatika feladatai
|