Wyzwanie to opiera się na zagadce, którą czytałem jakiś czas temu w książce, którą znalazłem tutaj ponownie . Chodzi o pociski wystrzeliwane z pistoletu raz na sekundę z różnymi prędkościami, które na zawsze przemieszczają się w linii prostej. Kiedy jedna kula trafi w drugą, obie zostają całkowicie zniszczone. (Zachęcamy do zastąpienia wszystkich przypadków „pocisku” słowem „pocisk”).
Zadanie
Biorąc pod uwagę listę prędkości pocisków w kolejności, w jakiej zostały wystrzelone, określ, czy wszystkie pociski są zniszczone.
Zasady
- Dane wejściowe to lista nieujemnych liczb całkowitych oddzielonych dowolnym separatorem i jednym opcjonalnym znakiem przed i po. Są to prawidłowe dane wejściowe:
1 2 3 4 5 6
i[1,2,3,4,5,6]
. Programista dokonuje wyboru. - Podaj wartość prawdy, jeśli przynajmniej jedna kula przeżyje na zawsze, a wartość fałszowania w przeciwnym razie.
- Prędkości pocisków są podawane w jednostkach na sekundę.
- Pociski poruszają się jednocześnie i ciągle.
- Pociski mogą zderzać się z przesunięciem ułamkowym.
- Wiele pocisków, które jednocześnie osiągają dokładnie to samo położenie, niezależnie od tego, czy są to integralne, czy ułamkowe przesunięcia względem początku, wszystkie zderzają się ze sobą.
Przykłady
Na tych schematach G
reprezentuje broń, >
pociski i *
czasy, w których pociski zderzają się i wybuchają.
Prawda
Wejście: 0
0123456789
Time 0 G>
1 G>
2 G>
...
Wynik: 1
Wejście: 0 0 0
0123456789
Time 0 G>
1 G*
2 G>
3 G>
4 G>
...
Wynik: 1
Wejście: 1
0123456789
Time 0 G>
1 G >
2 G >
3 G >
...
Wynik: 1
Wejście: 2 1
0123456789
Time 0 G>
1 G> >
2 G > >
3 G > >
4 G > >
...
Wynik: 1
Wejście: 2 3 1
0123456789
Time 0 G>
1 G> >
2 G> >>
3 G > *
4 G >
5 G >
...
Wynik: 1
Falsy
Wejście: 1 2 3 4 5 6
Unit 1111111111
01234567890123456789
Time 0 G>
1 G>>
2 G> *
3 G> >
4 G> > >
5 G> > >>
6 G > > *
7 G > >
8 G > >
9 G >>
10 G *
111111111122222222223
0123456789012345678901234567890
Wynik: 0
Wejście: 1 0 0 3
Unit
0123456789
Time 0 G>
1 G>>
2 G* >
3 G> >
4 G >>
5 G *
(Drugie zderzenie ma miejsce 4.5)
Wyjście:0
Wejście: 2 1 2 3 6 5
Unit 1111111111
01234567890123456789
Time 0 G>
1 G> >
2 G>> >
3 G> * >
4 G> > >
5 G> * >
6 G > >
7 G > >
8 G >>
9 G *
1111111111
01234567890123456789
Wynik: 0
Wejście: 2 3 6
Unit
0123456789
Time 0 G>
1 G> >
2 G> >>
3 G *
Wynik: 0
1<enter>2<enter>3...
?