Hello, MatKor Cup!

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

요약
각 질문이 서로 다른 K개 인덱스의 합을 알려줄 때, 최소 질문으로 N개 배점의 총점을 알아낸다.
난이도

보통10점 중 7점

유형
수학, 조합론, 구현, 구간
정답자
아직 제출이 없습니다

문제

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

MatKor Cup은 NN문제로 이루어진 점수대회이다. 이번 대회에는 참가자로 참가하기로 한 하늘이는 문제의 배점이 궁금해 동우에게 물어보기로 했다.

그러나 동우는 형평성에 어긋난다며, 대신 KK개의 문제 인덱스를 물어보면 그 문제들의 점수의 합을 알려주기로 했다. 하늘이는 문제별로 점수를 모두 알아내는 것은 포기하고 총점(문제별 점수의 합)을 알아내고자 한다. i(1≤i≤N)i(1\le i\le N)번째 문제의 배점을 S_i(0≤S_i≤106)S\_i(0\le S\_i\le 10^6)라고 하자.

하늘이는 다음과 같이 출력하여 질문할 수 있다. 이를 질문 쿼리라고 하자.

  • ? a_1a\_1 a_2a\_2 ⋯\cdots a_Ka\_K : 모든 a_ia\_i는 서로 달라야 하며, ∑_i=1KS_a_i\sum\_{i=1}^{K}S\_{a\_i}를 물어본다.

하늘이가 총점을 ss라고 생각한다면, 다음과 같이 출력할 수 있다. 이를 정답 쿼리라고 하자.

  • ! ss

최소 질문 횟수로 답을 구해보자.

입력

컴퓨터는 동우, 유저는 하늘이가 되어 이 문제를 해결하면 된다.

컴퓨터가 첫 번째 줄에 정수 N(1≤N≤1,000)N(1\le N\le 1\\, 000)과 K(1≤K≤N)K(1\le K\le N)을 입력으로 준다.

유저는 이후 질문 쿼리를 최대 1,0001\\, 000번, 모든 질문이 끝난 후 단 11번 정답 쿼리를 출력할 수 있다. 각 줄의 마지막에는 줄 바꿈을 출력해야 하며, 출력 이후 flush를 해야 한다.

컴퓨터는 각 쿼리에 대해 다음 행동을 한다.

  • 질문 쿼리가 주어진 경우, ∑_i=1KS_a_i\sum\_{i=1}^{K}S\_{a\_i}를 입력으로 준다.
  • 정답 쿼리가 주어진 경우, ss가 맞았는 지 검사한 후 추가적인 입력을 주지 않고 프로그램을 종료한다.

주어진 N,KN,K에 대해 어떠한 경우에도 반드시 ss를 알 수 있는 최소 질문 쿼리의 수를 QQ라고 할 때, QQ번 이하의 질문 쿼리 이후 정답 쿼리를 통해 ss를 맞추었다면 정답으로 판단한다. 주어진 조건 내에서 Q≤1,000Q\le 1\\, 000임은 증명할 수 있다.

다음과 같은 경우 틀렸습니다를 띄운다.

  • Q+1Q+1번 이상 질문 쿼리를 출력한 경우

    • 만약 1,0001\\, 000번 이하로 질문 쿼리를 출력한 경우, 모든 쿼리를 처리한 후 틀렸습니다를 띄운다.
    • 만약 1,0001\\, 000번 초과로 질문 쿼리를 출력한 경우, 1,0011\\, 001번째 질문이 들어온 후 틀렸습니다를 띄운다.
  • 정답 쿼리를 통해 출력한 답이 정답이 아닌 경우

단, 다음과 같이 유저가 비정상적인 출력으로 질문할 경우, 잘못된 입력을 주거나, 틀렸습니다 혹은 시간초과 등 의도되지 않은 결과가 나올 수 있다.

  • 질문 쿼리의 경우

    • ?를 줄의 처음에 출력하지 않은 경우
    • i≠j∧a_i=a_ji\ne j\land a\_i=a\_j가 존재하는 경우
    • 1≤a_i≤N1\le a\_i\le N의 정수를 만족하지 않는 경우
    • 한 줄에 KK개의 인덱스를 출력하지 않은 경우
  • 정답 쿼리의 경우

    • !를 줄의 처음에 출력하지 않은 경우
    • 0≤s≤1090\le s\le 10^9의 정수를 만족하지 않는 경우
    • 한 개보다 적거나 많은 정수를 출력한 경우
  • 기타 문제 조건에 맞지 않은 출력을 한 경우

  • 정답 쿼리 출력 이후 추가적인 출력이 있는 경우

  • 정답 쿼리를 출력하지 않은 경우

  • 한 줄을 출력한 후 flush를 하지 않은 경우

예제2

  1. 예제 1

    입력
    3 1
    
    1
    
    2
    
    4
    
    
    예상 출력
    
    ? 1
    
    ? 2
    
    ? 3
    
    ! 7
    
  2. 예제 2

    입력
    5 2
    
    3
    
    6
    
    5
    
    24
    
    예상 출력
    ? 1 2
    
    ? 2 3
    
    ? 1 3
    
    ? 4 5
    
    ! 31