만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

매복

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

요약
1000명의 병사가 각각 겨눈 적군을 직접 알 수 없고, 두 병사가 같은 적을 겨누었는지만 물어서 40000번 안에 적군의 수를 구합니다.
난이도

보통10점 중 5점

유형
분할 정복, 배열, 구현
정답자
아직 제출이 없습니다

문제

이 문제는 인터랙티브 문제이다.

캣니스의 부대가 캐피톨로 향하던 중 매복을 만났다. 무장한 캐피톨 병사 1000명이 튀어나와 항복하라고 요구했다. 캣니스와 부대원들은 항복하지 않고 곧바로 무기를 들어 캐피톨 병사들을 겨눴다. 부대원 각자는 무작위로 한 명을 골라 겨눴다. 어떤 병사를 겨누게 되었는지는 우연에 따라 정해졌다. 총격이 시작되면 부대원들의 모든 사격이 명중하여, 각자 겨눈 적 병사를 쓰러뜨린다.

총격을 시작할지 정하려면 쓰러질 적 병사의 수를 알아야 한다. 캣니스는 1초마다 부대원 두 명에게 같은 적 병사를 겨누고 있는지 물을 수 있다. 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