Эта проблема основана на загадке, которую я прочитал в какой-то книге некоторое время назад, которую я снова нашел здесь . Речь идет о пулях, выпущенных из пистолета один раз в секунду на разных скоростях, которые движутся по прямой навсегда. Когда одна пуля попадает в другую, обе полностью уничтожаются. (Не стесняйтесь заменить все экземпляры «пули» на «ракеты».)
Задание
Учитывая список скоростей пули в том порядке, в котором они выпущены, определите, все ли пули уничтожены.
Правила
- Ввод - это список неотрицательных целых чисел, разделенных любым разделителем и с одним необязательным символом до и после. Это действительные данные:
1 2 3 4 5 6
и[1,2,3,4,5,6]
. Программист делает выбор. - Выведите истинное значение, если хотя бы одна пуля выживет навсегда, а в противном случае - ложное значение.
- Скорости пули приведены в единицах в секунду.
- Пули движутся одновременно и непрерывно.
- Пули могут сталкиваться с небольшим смещением.
- Несколько пуль, которые одновременно достигают одной и той же позиции, с интегральным или дробным смещением от начала координат, сталкиваются друг с другом.
Примеры
На этих диаграммах G
изображены пистолет, >
пули и *
времена, когда пули сталкиваются и взрываются.
Truthy
Входные данные: 0
0123456789
Time 0 G>
1 G>
2 G>
...
Выход: 1
Входные данные: 0 0 0
0123456789
Time 0 G>
1 G*
2 G>
3 G>
4 G>
...
Выход: 1
Входные данные: 1
0123456789
Time 0 G>
1 G >
2 G >
3 G >
...
Выход: 1
Входные данные: 2 1
0123456789
Time 0 G>
1 G> >
2 G > >
3 G > >
4 G > >
...
Выход: 1
Входные данные: 2 3 1
0123456789
Time 0 G>
1 G> >
2 G> >>
3 G > *
4 G >
5 G >
...
Выход: 1
Falsy
Входные данные: 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
Выход: 0
Входные данные: 1 0 0 3
Unit
0123456789
Time 0 G>
1 G>>
2 G* >
3 G> >
4 G >>
5 G *
(Второе столкновение происходит в момент времени 4.5).
Вывод:0
Входные данные: 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
Выход: 0
Входные данные: 2 3 6
Unit
0123456789
Time 0 G>
1 G> >
2 G> >>
3 G *
Выход: 0
1<enter>2<enter>3...
?