#include <bits/stdc++.h> #include "sonlib.h" using namespace std; int n, s, i, u, v; vector <int> A, B; int main () { n = GetN(); s = GetSubtask(); assert(s == 1); Examine(); for (i=2; i<=n; i++) if (MoveProbe(i) == true) break; if (i>n) { v = n; MoveProbe(1); MoveProbe(n); for (i=2; i<n; i++) if (MoveProbe(i) == true) break; if (i == n) { MoveProbe(1); for (i=2; i<=n; i++) { MoveProbe(i); Examine(); MoveProbe(1); } return 0; } u = i; } else { u = i; v = i-1; } A.push_back(u); B.push_back(v); MoveProbe(v); MoveProbe(1); for (i=2; i<=n; i++) if (i!=u && i!=v) { MoveProbe(i); if (MoveProbe(u) == true) { B.push_back(i); MoveProbe(v); MoveProbe(1); } else A.push_back(i); } for (int a : A) { MoveProbe(v); MoveProbe(a); Examine(); MoveProbe(v); MoveProbe(1); } for (int b : B) { MoveProbe(b); Examine(); MoveProbe(1); } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | #include <bits/stdc++.h> #include "sonlib.h" using namespace std; int n, s, i, u, v; vector <int> A, B; int main () { n = GetN(); s = GetSubtask(); assert(s == 1); Examine(); for (i=2; i<=n; i++) if (MoveProbe(i) == true) break; if (i>n) { v = n; MoveProbe(1); MoveProbe(n); for (i=2; i<n; i++) if (MoveProbe(i) == true) break; if (i == n) { MoveProbe(1); for (i=2; i<=n; i++) { MoveProbe(i); Examine(); MoveProbe(1); } return 0; } u = i; } else { u = i; v = i-1; } A.push_back(u); B.push_back(v); MoveProbe(v); MoveProbe(1); for (i=2; i<=n; i++) if (i!=u && i!=v) { MoveProbe(i); if (MoveProbe(u) == true) { B.push_back(i); MoveProbe(v); MoveProbe(1); } else A.push_back(i); } for (int a : A) { MoveProbe(v); MoveProbe(a); Examine(); MoveProbe(v); MoveProbe(1); } for (int b : B) { MoveProbe(b); Examine(); MoveProbe(1); } return 0; } |