Bajtocy opracował proces tworzenia kryształów złożonych z określonej liczby atomów różnych pierwiastków. Po latach eksperymentów udało mu się znaleźć formułę, która opisuje, dla jakiej liczby atomów poszczególnych pierwiastków można wytworzyć kryształ składający się z tych atomów. Ciekawi go jak wiele różnych kryształów może otrzymać.
Niech
i
oznaczają nieujemne liczby całkowite.
Przez
oznaczmy wynik wykonania operacji
xor na odpowiadających sobie bitach liczb
i
.
Wyniki działania operacji xor na bitach to:
,
.
Na przykład,
.
Bajtocy zna
różnych pierwiastków, ponumerowanych od 1 do
.
Dla każdego pierwiastka
istnieje górne ograniczenie
na liczbę atomów tego pierwiastka, jaka może być użyta do stworzenia
kryształu.
Utworzenie kryształu, który składa się z
atomów
-tego
pierwiastka (dla
) jest możliwe tylko, gdy:
, dla
,
, oraz
.
Napisz program, który:
Pierwszy wiersz standardowego wejścia zawiera liczbę
pierwiastków
,
. W drugim i ostatnim wierszu
znajduje się
liczb
pooddzielanych
pojedynczymi odstępami,
.
Twój program powinien wypisać na standardowe wyjście jedną
liczbę - liczbę kryształów, które można otrzymać. Możesz
założyć, że liczba ta jest mniejsza od
.
Dla danych wejściowych:
3 2 1 3
poprawną odpowiedzią jest:
5
Możliwe ilości atomów poszczególnych pierwiastków to:
.
Autor zadania: Jakub Pawlewicz.
W razie problemów technicznych ze Szkopułem, prosimy o kontakt mailowy pod adresem szkopul@fri.edu.pl.
Jeśli chciałbyś porozmawiać o zadaniach, rozwiązaniach lub problemach technicznych, odwiedź nasze serwery na Discordzie. Są one moderowane przez społeczność, ale członkowie zespołu wsparcia również aktywnie się tam udzielają.