# Codeforces Round #385 (Div. 2), problem: (D) Hongcow’s Game Solution in C/C++

```#include <limits.h>
#include <stdio.h>

#define N	1000

void query(int *ww, int *aa, int k, int n) {
int i;

printf("%d\n", k);
for (i = 0; i < k; i++)
printf("%d ", ww[i]);
printf("\n");
fflush(stdout);
for (i = 1; i <= n; i++)
scanf("%d", &aa[i]);
}

int main() {
int i, j, n;
static int mm[N + 1];

scanf("%d", &n);
for (i = 1; i <= n; i++)
mm[i] = INT_MAX;
for (i = 0; 1 << i <= n; i++) {
int aa[N], bb[N], acnt, bcnt;
int amin[N + 1], bmin[N + 1];

acnt = bcnt = 0;
for (j = 1; j <= n; j++) {
if ((j & 1 << i) == 0)
aa[acnt++] = j;
else
bb[bcnt++] = j;
}
query(aa, amin, acnt, n);
query(bb, bmin, bcnt, n);
for (j = 1; j <= n; j++) {
int min;

min = (j & 1 << i) == 0 ? bmin[j] : amin[j];
if (mm[j] > min)
mm[j] = min;
}
}
printf("-1\n");
for (i = 1; i <= n; i++)
printf("%d ", mm[i]);
printf("\n");
fflush(stdout);
return 0;
}```
(Visited 44 times, 1 visits today)
By |2017-04-07T22:11:47+00:00December 18th, 2016|Categories: C/C++, Programming||0 Comments