Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
В одной компьютерной игре игрок выставляет в линию шарики разных цветов. Когда образуется непрерывная цепочка из трех и более шариков одного цвета, она удаляется из линии. Все шарики при этом сдвигаются друг к другу, и ситуация может повториться. Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас "уничтожено". Естественно, непрерывных цепочек из трех и более одноцветных шаров в начальный момент может быть не более одной. Входные данные Сначала вводится количество шариков в цепочке (не более 1000) и цвета шариков (от 0 до 9, каждому цвету соответствует свое целое число). Выходные данные Требуется вывести количество шариков, которое будет "уничтожено". Пример: Вход: 5 1 3 3 3 2 Выход: 3 Решение данной задачи реализованнное на С++,заходит только на 70%.Остальные или неправильные, или тайм лимит(знаю что далеко от идеала,но все же): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. З.Ы:Знаю что решений этой задачи в интернете много,но все же интересно допилить свой код до ума.Прошу строго не судить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 18:45 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
если что картинка - это мое условие,текст нашел в интернете (на случай если картинка не загрузиться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 18:46 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
ванмомас намбаванвсе же интересно допилить свой код до ума Интересно - допиливай. Хотя его, как обычно, лучше будет выкинуть целиком и написать новый. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 18:55 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovванмомас намбаванвсе же интересно допилить свой код до ума Интересно - допиливай. Хотя его, как обычно, лучше будет выкинуть целиком и написать новый. Его уже надо выкидывать. Там используется массив со всеми вытекающими. Хотя из природы самой постановки требуется что-то вроде связного би-направленного списка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 19:11 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
mayton, а что такое би-направленный список? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 19:14 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Список ты должен был проходить. Это первый курс кодинга. 2-я или 3 лаба. Дву-направленный (bi-directional (doubly-linked)) это тоже самое но в дополнение к списку каждый элемент смотрит на обоих соседей. Справа и слева. Это позволяет двигать итератор в обратку. В STL возможно это его имплементация (я уж точно не помню): http://www.cprogramming.com/tutorial/stl/stllist.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 19:22 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
mayton,обычный список юзал не раз,про этот слышу впервые,надо разобраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 19:26 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
maytonиз природы самой постановки требуется что-то вроде связного би-направленного списка. Не требуется ни массива, ни списка. Это задача решается поточно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 20:20 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, разве что рекурсивно. Список называется не бисексуальным, а двусвязным, если что, майтон ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 20:47 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Siemarglразве что рекурсивно. Назачем? В условии не сказано, что шарики схлопываются каскадно. Наоборот, сказано, что цепочка может быть только одна. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 21:07 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
ванмомас намбаванmayton, а что такое би-направленный список? Двусвязный список. Список, где каждая нода связана как со следующей, так и с предыдущей нодой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 21:14 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
SiemarglСписок называется не бисексуальным, а двусвязным, если что, майтон ) Спасибо бро. Это ценная инфа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 21:26 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Не надо тут рекурсий, списков и прочей бисексуальности. Один проход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 21:36 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Dima TНе надо тут рекурсий, списков и прочей бисексуальности. Один проход.Опиши алгоритм словами. Я сходу не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 11:00 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
SiemarglDima TНе надо тут рекурсий, списков и прочей бисексуальности. Один проход.Опиши алгоритм словами. Я сходу не вижу. Сверяешь текущую с предыдущей, совпало - счетчик++ ... дальше писать или догадался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 11:34 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Dima TSiemarglпропущено... Опиши алгоритм словами. Я сходу не вижу. Сверяешь текущую с предыдущей, совпало - счетчик++ ... дальше писать или догадался? Дима, понимаю твою идею но мне кажется что после удаления учёта трех единичек 111 их (по условию) надо удалить чтобы детектировать следующую цепочку 222. Пример входных данных: Код: plaintext 1. Их можно и не удалять но тебе по любому нужно где-то хранить и обновлять информацию о связности соседних шариков и сделать это через FSM КМК очень сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 11:41 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
mayton(по условию) Да, точно, я как-то упустил из виду "ситуация может повториться". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 11:50 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
maytonДима, понимаю твою идею но мне кажется что после удаления учёта трех единичек 111 их (по условию) надо удалить чтобы детектировать следующую цепочку 222. 222 окружает найденную 111, т.е. уже известно где ее искать. Удалять не обязательно, задача только посчитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 11:57 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Да, точно, я как-то упустил из виду "ситуация может повториться". а я что-то пока не упустил. Взять два указателя на строчку, и от них проверку делать в две стороны. Один проход. о_о ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 12:00 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Dima T222 окружает найденную 111, т.е. уже известно где ее искать. Удалять не обязательно, задача только посчитать. Тогда или рекурсия (и/или цикл + какая нибудь коллекция) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 12:02 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
CEMbВзять два указателя на строчку, и от них проверку делать в две стороны. Один проход. о_о Это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 12:03 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
По сути тут две части: 1. Найти цепочку 2. Проверить окрестности на новую цепочку. Если найдено, то п.2 повторить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 12:03 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Dima T, согласен, но это явно смахивает "на рекурсию". Или нечто очень на нее похожее. И в любом случае, это НЕ "один проход" p.s. понятно, что любой рекурсивный алгоритма можно заменить на не рекурсивный + коллекция ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 12:05 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Если дотошно всматриваться, то не один проход, а максимум дважды по каждой ячейке пройтись придется. Но рекурсий и списков не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 12:06 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevp.s. понятно, что любой рекурсивный алгоритма можно заменить на не рекурсивный + коллекция Ну зачем тут рекурсия? Надо просто пойти от найденного центра в обе стороны. Циклов достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39194177&tid=2018575]: |
0ms |
get settings: |
13ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 269ms |
| total: | 430ms |

| 0 / 0 |
