View difference between Paste ID: 8jJu4t97 and WaWFKkST
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
}