Logo
(追記) (追記ここまで)

32763번 - No title 인터랙티브

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB48121314843.917%

문제

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

모든 원소의 절댓값이 1ドル$ 이상 10ドル$ 이하의 정수인 길이 $N$의 수열 $A_1,ドル $A_2,ドル $\cdots,ドル $A_N$이 있다. 당신은 $A$의 원소들을 모르지만, 인터랙터에게 두 원소의 합 또는 곱의 부호를 질문할 수 있다.

$N$번 이하의 질문을 통해 모든 원소의 부호를 알아내 보자.

입력

출력

당신의 프로그램은 아래의 과정을 통해 표준 입출력으로 인터랙터와 상호작용을 해야 한다. 이 문제의 인터랙터는 비적응적이다.

첫째 줄에 수열의 길이 $N$이 주어진다. $(3 \leq N \leq 1,000円)$

인터랙터에게 다음과 같은 질문을 최대 $N$번 할 수 있다.

  • ? i op j: $op$가 +라면 $A_i + A_j,ドル *라면 $A_i \times A_j$의 부호를 질문한다. $(1 \leq i < j \leq N;$ $op \in \{+, *\})$

각 질문은 한 줄에 출력하며, 각 줄의 마지막에 개행 문자를 출력한 뒤 표준 출력 버퍼를 비워야 한다.

각 질문 이후, 결과에 따라 한 줄에 문자 한 개가 주어진다. 계산한 값이 음수라면 -, 0ドル$이라면 0, 양수라면 +가 주어진다.

만약 모든 원소의 부호를 알아냈을 경우, 다음을 한 줄에 공백으로 구분하여 출력한다.

  • ! $s_1$ $s_2$ $\cdots$ $s_N$: $A_i$가 음수라면 $s_i$는 -, 양수라면 +이다.

답을 출력한 뒤에는 개행 이후 표준 출력 버퍼를 비우고 프로그램을 즉시 종료해야 한다.

다음과 같은 경우에는 예상하지 못한 채점 결과를 받을 수 있음에 유의한다.

  • 매 질문이나 답을 출력한 뒤 표준 출력 버퍼를 비우지 않았다.
  • 출력 형식을 어겼다.
  • $N$번보다 많은 질문을 했다.
  • 올바르지 않은 답을 출력했다.
  • 답을 출력한 이후 프로그램을 즉시 종료하지 않았다.

제한

예제 입력 1

4
+
+
-

예제 출력 1

? 1 + 2
? 2 * 3
? 3 + 4
! + - - +

예제에서 인터랙터에 정해져 있는 수열 $A$는 $\{3, -1, -4, 2\}$이다.

예제는 입출력이 어떤 방식으로 이루어지는지 알기 쉽도록 의도적으로 줄 간격을 조정한 것으로, 실제 입출력과는 다르다.

노트

언어별로 표준 출력 버퍼를 비우는 방법은 다음과 같다.

  • C: fflush(stdout)
  • C++: std::cout << std::flush
  • Java: System.out.flush()
  • Python: sys.stdout.flush()

출처

Contest > BOJ User Contest > 월간 향유회 > 월간 향유회 2024. 11. A번

채점 및 기타 정보

  • 예제는 채점하지 않는다.
(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /