Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Wieże
(wieze)
Memory limit: 32 MB
Time limit: 0.50 s

Jasio bawi się klockami. Ułożył z nich dwie wieże. Na klockach oczywiście są zapisane nieujemne liczby całkowite. Jasio teraz chce zdjąć niektóre klocki (możliwie najmniej), żeby suma wartości na obu wieżach była taka sama. Wolno mu jednak zdejmować klocki tylko z góry – inaczej wieża runie.

Napisz program, który wczyta opis wież, wyznaczy minimalną liczbę klocków, które należy zdjąć, żeby wyrównać wartości na klockach wieży i wypisze wynik na wyjście.

Wejście

W pierwszym wierszu wejścia znajdują się dwie liczby naturalne N i M, oddzielone pojedynczym odstępem i określające kolejno wysokość pierwszej i drugiej wieży. W drugim wierszu wejścia znajduje się ciąg N liczb całkowitych Ai, pooddzielanych pojedynczymi odstępami. Są to wartości zapisane na kolejnych klockach wieży poczynając od dołu. W trzecim wierszu wejścia znajduje się ciąg M liczb całkowitych Bi, pooddzielanych pojedynczymi odstępami. Są to wartości zapisane na kolejnych klockach wieży poczynając od dołu.

Wyjście

W pierwszym (i jedynym) wierszu wyjścia powinna się znaleźć jedna liczba całkowita – minimalna liczba klocków które należy zdjąć z wież, aby uzyskać wieże o równych wartościach.

Ograniczenia

1 ≤ N, M ≤ 200 000, 0 ≤ Ai, Bi ≤ 109.

Przykład

Input Output Explanation
4 5
6 7 4 1
3 2 3 5 9
3

Wystarczy zdjąć dwa klocki z pierwszej wieży i jeden klocek z drugiej – suma na obu wieżach będzie wówczas równa 13.