#include <bits/stdc++.h>
using namespace std;
// define
#define re register
#define fi first
#define se second
#define il inline
#define co const
#define ls (u << 1)
#define rs (u << 1 | 1)
#define fup(x, l, r) for (re int x = (l), eNd = (r); x <= eNd; ++ x )
#define fdw(x, r, l) for (re int x = (r), eNd = (l); x >= eNd; -- x )
//#define int long long
// typedef
typedef pair<int, int> PII;
typedef long long LL;
typedef long double LD;
typedef unsigned long long ULL;
// const
const int N = 1e6 + 10, M = 2e6 + 10;
const int INF = 2e9, P = 998244353;
const double eps = 1e-6;
// debug
const bool DeBug = true;
int db_cnt;
il void db() { if (DeBug) puts("--------------"); return; }
il void db(auto a) { if (DeBug) ++ db_cnt, cout << "-- | t" << db_cnt << " : " << a << '\n'; return; }
il void db(auto a, auto b) { if (DeBug) ++ db_cnt, cout << "-- | t" << db_cnt << " : " << a << ", " << b << '\n'; return; }
il void db(auto a, auto b, auto c) { if (DeBug) ++ db_cnt, cout << "-- | t" << db_cnt << " : " << a << ", " << b << ", " << c << '\n'; return; }
il void db(auto a, auto b, auto c, auto d) { if (DeBug) ++ db_cnt, cout << "-- | t" << db_cnt << " : " << a << ", " << b << ", " << c << ", " << d << '\n'; return; }
il void db(auto a, auto b, auto c, auto d, auto e) { if (DeBug) ++ db_cnt, cout << "-- | t" << db_cnt << " : " << a << ", " << b << ", " << c << ", " << d << ", " << e << '\n'; return; }
il void db(auto *a, auto *b) { if (DeBug) { ++ db_cnt; cout << "-- | t" << db_cnt << " : {"; if (a >= b) cout << "empty"; else { cout << (*a); for (auto *i = a + 1; i < b; ++ i ) cout << ", " << *i; } cout << "}\n"; } return; }
// common functions
il int Max(co auto a, co auto b) { return a > b ? a : b; }
il int Min(co auto a, co auto b) { return a < b ? a : b; }
il LL read() { re LL x = 0; re bool f = true; re char c = getchar(); while (c < 48 || c > 57) { (c == '-') ? f = false : 0; c = getchar(); } while (c > 47 && c < 58) x = (x << 3) + (x << 1) + c - 48, c = getchar(); return f ? x : -x; }
il void read(auto *a, auto *b) { for (auto *i = a; i < b; ++ i ) *i = read(); return; }
il void write(re auto x) { (x < 0) ? putchar('-'), x = -x : 0; (x > 9) ? write(x / 10) : void(); putchar(x % 10 + 48); return; }
il void wel(co auto x) { write(x), putchar('\n'); return; }
il void wel(co auto x, co auto y) { write(x), putchar(' '), write(y), putchar('\n'); return; }
il void wel(co auto x, co auto y, co auto z) { write(x), putchar(' '), write(y), putchar(' '), write(z), putchar('\n'); return; }
il void wsp(co auto x) { write(x), putchar(' '); return; }
il void wel(auto *a, auto *b) { for (auto *i = a; i < b; ++ i ) wsp(*i); puts(""); return; }
il void wel(vector<auto> v) { for (auto i : v) wsp(i); puts(""); return; }
int n;
char s[N];
signed main()
{
cin >> n;
if (n == 2)
{
cout << 1 << endl << 1 << ' ' << 1 << endl;
cin >> s[1];
if (s[1] == '1') cout << 1 << endl;
else cout << 2 << endl;
return 0;
}
int m = (n + 2) / 2, k = (n + 1) / 2;
cout << m << endl;
for (int i = 1; i <= m; ++ i )
{
cout << k << ' ';
for (int j = i; j <= i + k - 1; ++ j ) cout << j << ' ';
cout << endl;
}
for (int i = 1; i <= m; ++ i ) cin >> s[i];
if (s[1] == '1')
{
// 找最后一个为 '1' 的
for (int i = m; i; -- i )
if (s[i] == '1')
{
cout << i << endl;
return 0;
}
}
else
{
// 找第一个为 '1' 的
for (int i = 1; i <= m; ++ i )
if (s[i] == '1')
{
cout << i << endl;
return 0;
}
}
return 0;
}
Main.cpp: In function ‘LL read()’:
Main.cpp:42:22: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
42 | il LL read() { re LL x = 0; re bool f = true; re char c = getchar(); while (c < 48 || c > 57) { (c == '-') ? f = false : 0; c = getchar(); } while (c > 47 && c < 58) x = (x << 3) + (x << 1) + c - 48, c = getchar(); return f ? x : -x; }
| ^
Main.cpp:42:37: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
42 | il LL read() { re LL x = 0; re bool f = true; re char c = getchar(); while (c < 48 || c > 57) { (c == '-') ? f = false : 0; c = getchar(); } while (c > 47 && c < 58) x = (x << 3) + (x << 1) + c - 48, c = getchar(); return f ? x : -x; }
| ^
Main.cpp:42:55: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
42 | il LL read() { re LL x = 0; re bool f = true; re char c = getchar(); while (c < 48 || c > 57) { (c == '-') ? f = false : 0; c = getchar(); } while (c > 47 && c < 58) x = (x << 3) + (x << 1) + c - 48, c = getchar(); return f ? x : -x; }
| ^
Main.cpp: At global scope:
Main.cpp:44:23: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
44 | il void write(re auto x) { (x < 0) ? putchar('-'), x = -x : 0; (x > 9) ? write(x / 10) : void(); putchar(x % 10 + 48); return; }
| ^