Advertisement
Guest User

Untitled

a guest
Dec 17th, 2016
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement