Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2025
Problem description
Jasio tym razem zainteresował się grafiką komputerową. Zaczyna od bardzo podstawowego poziomu – generuje tylko czarno-białe, prostokątne rysunki (matryce) wymiaru H × W pikseli.
Kiedy stworzył bardzo dużo rysunków, zauważył, że jego program graficzny ma funkcję kombinowania dwóch (i więcej) rysunków. Kombinowanie dwóch rysunków polega na tym, że w obrazku wynikowym zapalone są te piksele, które są zapalone w dokładnie jednym z dwóch wejściowych rysunków (tj. jeśli w obu obrazkach jakiś piksel jest zapalony to w obrazku wynikowym będzie zgaszony). Kombinowanie więcej niż dwóch rysunków działa analogicznie – program kombinuje dwa pierwsze rysunki, następnie wynik kombinacji z trzecim, kolejny wynik z czwartym itd.
Jasio zastanawia się, czy nie napracował się niepotrzebnie – być może niektóre z jego rysunków mogłyby zostać uzyskane z innych, które wcześniej stworzył za pomocą funkcji kombinowania. Kombinowanie bowiem jest bardzo szybkie, zajmuje pomijalny czas w porównaniu z czasem rysowania obrazków. Zakładamy także, że narysowanie pustego obrazka (złożonego tylko z białych pikseli) nie kosztuje czasu (program startuje z takim obrazkiem).
Napisz program, który: wczyta opis rysunków (matryc) które stworzył Jasio, wyznaczy ile czasu mógł zaoszczędzić Jasio, gdyby niektóre spośród swoich rysunków uzyskał za pomocą kombinowania (a nie rysowania ich od nowa) i wypisze wynik na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajdują się trzy liczby naturalne: N, H, W, pooddzielane pojedynczymi odstępami i określające kolejno: liczbę obrazków, wysokość i szerokość każdego z nich.
W kolejnych wierszach znajdują się opisy kolejnych obrazków, po H + 1 wierszy na jeden obrazek.
Pierwszy wiersz opisu obrazka zawiera jedną liczbę całkowitą Ti – czas w
minutach niezbędny do narysowania tego obrazka przez Jasia. Kolejne
H wierszy opisu obrazka
zawiera po W znaków – jest to
opis obrazka, który namalował Jasio: 0 oznacza biały
piksel, zaś 1 – czarny.
Wyjście
W pierwszym (i jedynym) wierszu wyjścia powinna się znaleźć jedna liczba całkowita – maksymalny możliwy do oszczędzenia czas namalowania obrazków w minutach.
Ograniczenia
1 ≤ N ≤ 10 000, 1 ≤ H, W ≤ 50, 0 ≤ Ti ≤ 1 000 000.
Przykład
| Input | Output | Explanation |
|
|
Trzeci obrazek można uzyskać za pomocą kombinowania pierwszego i czwartego. |