#include using namespace std; //高速化 struct ponjuice{ponjuice(){cin.tie(0);ios::sync_with_stdio(0);cout<= 0; i--) #define per2(i, n) for(ll i = n-1; i >= 0; i--) #define per3(i, a, b) for(ll i = b-1; i >= a; i--) #define per4(i, a, b, step) for(ll i = b-1; i >= a; i-= step) #define per(...) overload4(__VA_ARGS__, per4, per3, per2, per1)(__VA_ARGS__) //関数 #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() templateinline bool chmax(S& a, T b){return a < b && ( a = b , true);} templateinline bool chmin(S& a, T b){return a > b && ( a = b , true);} //定数 constexpr ll mod = 998244353; constexpr ll minf=-(1<<29); constexpr ll inf=(1<<29); constexpr ll MINF=-(1LL<<60); constexpr ll INF=(1LL<<60); const int dx[4] ={-1, 0, 1, 0}; const int dy[4] ={ 0, 1, 0,-1}; const int dx8[8] ={-1,-1,-1, 0, 1, 1, 1, 0}; const int dy8[8] ={-1, 0, 1, 1, 1, 0,-1,-1}; void solve(); int main() { int t = 1; // cin >> t; while(t--)solve(); } void alice() { ll n; cin >> n; ll k = n-2; cout << k << endl; vector> g(n); rep(i,0,n-1 ){ int a,b; cin >> a >> b; a--,b--; g[a].push_back(b); g[b].push_back(a); } vector ans; vector out(n); rep(i,0,n) out[i] = g[i].size(); using S = int; priority_queue, greater> q; rep(i,0,n) if(out[i] == 1) q.push(i); while(q.size()) { if(ans.size() == k) break; auto nw = q.top(); q.pop(); for(auto to: g[nw]) { if(out[to] > 1) { ans.push_back(to+1); out[to]--; if(out[to] == 1) q.push(to); } } } for(auto x: ans) cout << x << " ";cout << endl; } #include using S = ll; S op(S a, S b) {return min(a,b);} S e(){return INF;} void bob() { ll n; cin >> n; ll k = n-2; cout << k << endl; vector a(k); rep(i,0,k) cin >> a[i]; rep(i,0,k) a[i]--; vector ls(n,-1); per(i,0,k) { if(ls[a[i]] == -1) ls[a[i]] = i; } atcoder::segtree seg(n); rep(i,0,n) { if(ls[i] == -1) seg.set(i, i); } rep(i,0,k) { ll x = seg.all_prod(); cout << x+1 << " " << a[i]+1 << endl; seg.set(x, INF); if(ls[a[i]] == i) seg.set(a[i], a[i]); } cout << seg.all_prod()+1 << " "; seg.set(seg.all_prod(), INF); cout << seg.all_prod()+1 << endl; } void solve(){ string s; cin >> s; if(s == "Alice") alice(); else bob(); }