Засада

시간 제한2초메모리 제한1024 MB

요약
각자 한 명의 목표를 겨누는 n명의 병사가 있을 때, 두 병사의 목표가 같은지 묻는 질의만으로 서로 다른 목표의 수를 세는 인터랙티브 문제입니다.
난이도

보통10점 중 6점

유형
구간, 해시맵, 구현, 이분 탐색
정답자
아직 제출이 없습니다

문제

Это интерактивная задача.

Пробираясь к Капитолию, отряд Китнисс попал в засаду --- на них выскочили 1000 вооруженных солдат Капитолия и приказали сдаться. Однако Китнисс и ее солдаты не собираются это делать, поэтому они тут же выхватили оружие и направили его на солдат Капитолия. Китнисс понимает, что каждый человек из ее отряда направил свое оружие на случайного человека --- на того, на кого получилось. Также она уверена, что если начнется стрельба, все выстрелы ее солдат попадут в цель, то есть каждый из них убьет солдата противника, на которого направил оружие.

Теперь надо оценить, стоит ли начинать стрельбу, а именно, надо понять, сколько в этом случае солдат противника будет убито. За одну секунду Китнисс может спросить у двух своих солдат, на разных ли солдат они направили свое оружие. Помогите ей найти количество солдат противника, которое будет убито в случае начала перестрелки не более чем за 40,00040\\,000 секунд.

힌트

В тесте из условия номера солдат, на которых были направлено оружие, были равны 1, 1 и 2 соответственно.

Для корректной работы программы после каждой операции вывода данных вам необходимо делать следующие операции:

  • В языке Pascal: flush(output);
  • В C/C++: fflush(stdout);
  • В Java: System.out.flush();
  • В Python: sys.stdout.flush();

Кроме этого, не забывайте после каждой выведенной строки ставить перевод строки.

예제1

  1. 예제 1

    입력
    3
    -1
    -1
    0
    
    예상 출력
    1 1 3
    1 2 3
    1 1 2
    2 2