{"trustable":false,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\n\u003cscript\u003e\n window.katexOptions \u003d {\n delimiters: [\n {left: \u0027$$$$$$\u0027, right: \u0027$$$$$$\u0027, display: true},\n {left: \u0027$$$\u0027, right: \u0027$$$\u0027, display: false},\n {left: \u0027$$\u0027, right: \u0027$$\u0027, display: true},\n {left: \u0027$\u0027, right: \u0027$\u0027, display: false}\n ]\n };\n\u003c/script\u003e\n","sections":[{"title":"题目描述","value":{"format":"MD","content":"注意:这是一道交互题\n\n顽皮的小B想要考考你,他自己随机生成了一个长度为n的排列p,由1到n组成。他想让你猜猜p的每一位是什么。为此,你可以问小B若干个问题,每个问题包含两个不同的整数i和j,他会回答你p[i]%p[j]的值(%代表取余)。\n\n小B有足够的耐心回答最多2n个问题,因此你应该有策略的去询问。\n\n提示:长度为n的排列是由n个从1到n的不同整数按任意顺序组成的数组。例如,[2,3,1,5,4]是排列,但[1,2,2]不是,并且[1,3,4]也不是。"}},{"title":"输入","value":{"format":"MD","content":"一个整数n (n≤10000)"}},{"title":"输出","value":{"format":"MD","content":"输出最多2n次询问每次询问格式如“? x y”(不带引号)的形式,每次询问后,你可以读入一个整数作为小B的回答\n\n猜出排列后,输出“! ”(不带引号),后跟数组p并退出。\n\n注意:每次查询后应该换行并且刷新输出,方法如下:\n\nfflush(stdout) 或 cout.flush() C++;\nSystem.out.flush() Java;\nflush(output) Pascal;\nstdout.flush() Python;"}},{"title":"样例","value":{"format":"MD","content":"\u003cdiv class\u003d\"sample-test\"\u003e\n \u003cdiv class\u003d\"input\"\u003e\n \u003cdiv class\u003d\"title\"\u003e\n Input\n \u003c/div\u003e\n \u003cpre\u003e3\n\n1\n\n2\n\n1\n\n0\u003c/pre\u003e\n \u003c/div\u003e\n \u003cdiv class\u003d\"output\"\u003e\n \u003cdiv class\u003d\"title\"\u003e\n Output\n \u003c/div\u003e\n \u003cpre\u003e? 1 2\n\n? 3 2\n\n? 1 3\n\n? 2 1\n\n! 1 3 2\u003c/pre\u003e\n \u003c/div\u003e\n\u003c/div\u003e"}}]}