Напишите бессрочно работающую программу, которая сообщает, сколько экземпляров себя в данный момент запущено. Каждый экземпляр программы должен также сообщать порядок, в котором она была открыта из всех других запущенных в данный момент экземпляров.
пример
Пользователь запускает программу в первый раз - мы назовем этот экземпляр 1. Экземпляр 1 отображается 1/1
, потому что это первый экземпляр, который будет запущен из 1 запущенных в данный момент экземпляров.
Во время работы Экземпляра 1 пользователь запускает программу второй раз, чтобы стать Экземпляром 2. Теперь отображается Экземпляр 1 1/2
, являющийся первым экземпляром из 2 запущенных в данный момент экземпляров. Экземпляр 2 отображается 2/2
, потому что это второй экземпляр из 2 запущенных в данный момент экземпляров.
Допустим, пользователь продолжает порождать больше экземпляров, пока их не станет 5 . Для запуска, их выходы: 1/5
2/5
3/5
4/5
5/5
.
Теперь, скажем, пользователь решает прекратить Экземпляр 3. Затем Экземпляр 4 становится новым Экземпляром 3, а Экземпляр 5 - новым Экземпляром 4, потому что они соответственно являются третьим и четвертым экземплярами, которые были запущены из того, что сейчас составляет 4. экземпляров. Таким образом, изменение каждого экземпляра в выводе будет следующим:
1/5
→1/4
2/5
→2/4
3/5
→ (прекращено)4/5
→3/4
5/5
→4/4
правила
- Вы можете вывести два числа (номер экземпляра, общее количество экземпляров) в любом приемлемом формате.
- Каждый раз, когда экземпляр запускается или завершается, все остальные экземпляры должны обновить свои соответствующие выходные данные в течение 100 миллисекунд.
- Если вы решите обновить вывод, печатая на новую строку (или другой «добавляющий» формат вывода; в отличие от замены), вы должны печатать только при изменении количества экземпляров, а не в любое другое время.
- Это код гольф. Самая короткая программа в байтах побеждает.
- В своем ответе вам предлагается указать, что пользователь должен сделать, чтобы открыть более одного экземпляра, и / или записать скринкаст для демонстрации.