SHOW:
|
|
- or go back to the newest paste.
1 | import java.util.*; | |
2 | import java.io.*; | |
3 | import java.lang.*; | |
4 | import java.math.*; | |
5 | public class B { | |
6 | public static void main(String[] args) throws Exception { | |
7 | BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); | |
8 | PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); | |
9 | StringTokenizer st; | |
10 | int n = Integer.parseInt(bf.readLine()); | |
11 | if(n < 3) { | |
12 | out.println("1"); | |
13 | out.flush(); | |
14 | out.println("1"); | |
15 | out.flush(); | |
16 | st = new StringTokenizer(bf.readLine()); | |
17 | int xx = Integer.parseInt(st.nextToken()); | |
18 | int v1 = Integer.parseInt(st.nextToken()); | |
19 | ||
20 | out.println("1"); | |
21 | out.flush(); | |
22 | out.println("2"); | |
23 | out.flush(); | |
24 | st = new StringTokenizer(bf.readLine()); | |
25 | int v2 = Integer.parseInt(st.nextToken()); | |
26 | int yy = Integer.parseInt(st.nextToken()); | |
27 | out.println("-1"); | |
28 | out.flush(); | |
29 | out.println(v2 + " " + v1); | |
30 | out.flush(); | |
31 | } | |
32 | else { | |
33 | int[][] subsets = new int[20][n]; | |
34 | int counter = 0; | |
35 | int[][] inputs = new int[20][3]; | |
36 | for(int i=0; (i<20) && (counter < n); i++) { | |
37 | for(int j=0; (j < i) && (counter < n); j++) { | |
38 | for(int k=0; (k < j) && (counter < n); k++) { | |
39 | if(counter < n) { | |
40 | inputs[counter][0] = i; | |
41 | inputs[counter][1] = j; | |
42 | inputs[counter][2] = k; | |
43 | subsets[i][counter] = 1; | |
44 | subsets[j][counter] = 1; | |
45 | subsets[k][counter] = 1; | |
46 | counter++; | |
47 | ||
48 | } | |
49 | else break; | |
50 | } | |
51 | } | |
52 | } | |
53 | ///for(int i=0; i<20; i++) | |
54 | //System.out.println(Arrays.toString(subsets[i])); | |
55 | int[][] results = new int[20][n]; | |
56 | for(int i=0; i<20; i++) { | |
57 | StringBuilder query = new StringBuilder(); | |
58 | int count = 0; | |
59 | for(int j=0; j<n; j++) { | |
60 | if(subsets[i][j] == 0) { | |
61 | count++; | |
62 | query.append((j+1)); | |
63 | query.append(' '); | |
64 | } | |
65 | } | |
66 | if(count == 0) { | |
67 | for(int j=0; j<n; j++) | |
68 | results[i][j] = Integer.MAX_VALUE; | |
69 | } | |
70 | else { | |
71 | out.println(count); | |
72 | out.println(query.toString()); | |
73 | out.flush(); | |
74 | st = new StringTokenizer(bf.readLine()); | |
75 | for(int j=0; j<n; j++) | |
76 | results[i][j] = Integer.parseInt(st.nextToken()); | |
77 | } | |
78 | } | |
79 | out.println("-1"); | |
80 | out.flush(); | |
81 | StringBuilder sb = new StringBuilder(); | |
82 | for(int i=0; i<n; i++) { | |
83 | int val1 = results[inputs[i][0]][i]; | |
84 | int val2 = results[inputs[i][1]][i]; | |
85 | int val3 = results[inputs[i][2]][i]; | |
86 | int min = Integer.MAX_VALUE; | |
87 | if(val1 < min) min = val1; | |
88 | if(val2 < min) min = val2; | |
89 | if(val3 < min) min = val3; | |
90 | ||
91 | sb.append(min); | |
92 | sb.append(' '); | |
93 | ||
94 | } | |
95 | out.println(sb.toString()); | |
96 | out.flush(); | |
97 | } | |
98 | // Scanner scan = new Scanner(System.in); | |
99 | // PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); | |
100 | // int n = Integer.parseInt(bf.readLine()); | |
101 | //StringTokenizer st = new StringTokenizer(bf.readLine()); | |
102 | // for(int i=0; i<n; i++) a[i] = Integer.parseInt(st.nextToken()); | |
103 | ||
104 | // int n = scan.nextInt(); | |
105 | ||
106 | out.close(); System.exit(0); | |
107 | } | |
108 | ||
109 | ||
110 | } |