CF1583D.Omkar and the Meaning of Life

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

It turns out that the meaning of life is a permutation p1,p2,,pnp_1, p_2, \ldots, p_n of the integers 1,2,,n1, 2, \ldots, n ( 2n1002 \leq n \leq 100 ). Omkar, having created all life, knows this permutation, and will allow you to figure it out using some queries.

A query consists of an array a1,a2,,ana_1, a_2, \ldots, a_n of integers between 11 and nn . aa is not required to be a permutation. Omkar will first compute the pairwise sum of aa and pp , meaning that he will compute an array ss where sj=pj+ajs_j = p_j + a_j for all j=1,2,,nj = 1, 2, \ldots, n . Then, he will find the smallest index kk such that sks_k occurs more than once in ss , and answer with kk . If there is no such index kk , then he will answer with 00 .

You can perform at most 2n2n queries. Figure out the meaning of life pp .

输入格式

输出格式

Start the interaction by reading single integer nn ( 2n1002 \leq n \leq 100 ) — the length of the permutation pp .

You can then make queries. A query consists of a single line " ?a1a2an? \enspace a_1 \enspace a_2 \enspace \ldots \enspace a_n " ( 1ajn1 \leq a_j \leq n ).

The answer to each query will be a single integer kk as described above ( 0kn0 \leq k \leq n ).

After making a query do not forget to output end of line and flush the output. Otherwise, you will get Idleness limit exceeded. To do this, use:

  • fflush(stdout) or cout.flush() in C++;
  • System.out.flush() in Java;
  • flush(output) in Pascal;
  • stdout.flush() in Python;
  • see documentation for other languages.

To output your answer, print a single line " !p1p2pn! \enspace p_1 \enspace p_2 \enspace \ldots \enspace p_n " then terminate.

You can make at most 2n2n queries. Outputting the answer does not count as a query.

Hack Format

To hack, first output a line containing nn ( 2n1002 \leq n \leq 100 ), then output another line containing the hidden permutation p1,p2,,pnp_1, p_2, \ldots, p_n of numbers from 11 to nn .

输入输出样例

  • 输入#1

    5
    
    2
    
    0
    
    1

    输出#1

    ? 4 4 2 3 2
    
    ? 3 5 1 5 5
    
    ? 5 2 4 3 1
    
    ! 3 2 1 5 4

说明/提示

In the sample, the hidden permutation pp is [3,2,1,5,4][3, 2, 1, 5, 4] . Three queries were made.

The first query is a=[4,4,2,3,2]a = [4, 4, 2, 3, 2] . This yields s=[3+4,2+4,1+2,5+3,4+2]=[7,6,3,8,6]s = [3 + 4, 2 + 4, 1 + 2, 5 + 3, 4 + 2] = [7, 6, 3, 8, 6] . 66 is the only number that appears more than once, and it appears first at index 22 , making the answer to the query 22 .

The second query is a=[3,5,1,5,5]a = [3, 5, 1, 5, 5] . This yields s=[3+3,2+5,1+1,5+5,4+5]=[6,7,2,10,9]s = [3 + 3, 2 + 5, 1 + 1, 5 + 5, 4 + 5] = [6, 7, 2, 10, 9] . There are no numbers that appear more than once here, so the answer to the query is 00 .

The third query is a=[5,2,4,3,1]a = [5, 2, 4, 3, 1] . This yields s=[3+5,2+2,1+4,5+3,4+1]=[8,4,5,8,5]s = [3 + 5, 2 + 2, 1 + 4, 5 + 3, 4 + 1] = [8, 4, 5, 8, 5] . 55 and 88 both occur more than once here. 55 first appears at index 33 , while 88 first appears at index 11 , and 1<31 < 3 , making the answer to the query 11 .

Note that the sample is only meant to provide an example of how the interaction works; it is not guaranteed that the above queries represent a correct strategy with which to determine the answer.

首页