Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.io.*;
- import java.lang.*;
- import java.math.*;
- public class B {
- public static void main(String[] args) throws Exception {
- BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
- PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
- StringTokenizer st;
- int n = Integer.parseInt(bf.readLine());
- if(n < 3) {
- out.println("1");
- out.flush();
- out.println("1");
- out.flush();
- st = new StringTokenizer(bf.readLine());
- int xx = Integer.parseInt(st.nextToken());
- int v1 = Integer.parseInt(st.nextToken());
- out.println("1");
- out.flush();
- out.println("2");
- out.flush();
- st = new StringTokenizer(bf.readLine());
- int v2 = Integer.parseInt(st.nextToken());
- int yy = Integer.parseInt(st.nextToken());
- out.println("-1");
- out.flush();
- out.println(v2 + " " + v1);
- out.flush();
- }
- else {
- int[][] subsets = new int[20][n];
- int counter = 0;
- int[][] inputs = new int[20][3];
- for(int i=0; (i<20) && (counter < n); i++) {
- for(int j=0; (j < i) && (counter < n); j++) {
- for(int k=0; (k < j) && (counter < n); k++) {
- if(counter < n) {
- inputs[counter][0] = i;
- inputs[counter][1] = j;
- inputs[counter][2] = k;
- subsets[i][counter] = 1;
- subsets[j][counter] = 1;
- subsets[k][counter] = 1;
- counter++;
- }
- else break;
- }
- }
- }
- ///for(int i=0; i<20; i++)
- //System.out.println(Arrays.toString(subsets[i]));
- int[][] results = new int[20][n];
- for(int i=0; i<20; i++) {
- StringBuilder query = new StringBuilder();
- int count = 0;
- for(int j=0; j<n; j++) {
- if(subsets[i][j] == 0) {
- count++;
- query.append((j+1));
- query.append(' ');
- }
- }
- if(count == 0) {
- for(int j=0; j<n; j++)
- results[i][j] = Integer.MAX_VALUE;
- }
- else {
- out.println(count);
- out.println(query.toString());
- out.flush();
- st = new StringTokenizer(bf.readLine());
- for(int j=0; j<n; j++)
- results[i][j] = Integer.parseInt(st.nextToken());
- }
- }
- out.println("-1");
- out.flush();
- StringBuilder sb = new StringBuilder();
- for(int i=0; i<n; i++) {
- int val1 = results[inputs[i][0]][i];
- int val2 = results[inputs[i][1]][i];
- int val3 = results[inputs[i][2]][i];
- int min = Integer.MAX_VALUE;
- if(val1 < min) min = val1;
- if(val2 < min) min = val2;
- if(val3 < min) min = val3;
- sb.append(min);
- sb.append(' ');
- }
- out.println(sb.toString());
- out.flush();
- }
- // Scanner scan = new Scanner(System.in);
- // PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
- // int n = Integer.parseInt(bf.readLine());
- //StringTokenizer st = new StringTokenizer(bf.readLine());
- // for(int i=0; i<n; i++) a[i] = Integer.parseInt(st.nextToken());
- // int n = scan.nextInt();
- out.close(); System.exit(0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement