QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#887431 | #8056. Travel 2 | SJZ2010 | AC ✓ | 210ms | 5004kb | C++14 | 2.9kb | 2025-02-07 17:13:55 | 2025-02-07 17:13:56 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vi = vector < int >;
#define pb push_back
#define sz(x) ((int)(x).size())
#define me(a, b) memset(a, b, sizeof(a))
#define qio() cin.tie(0) -> sync_with_stdio(0)
#define L(i, j, k) for (int i = j; i <= int(k); i++)
#define R(i, j, k) for (int i = j; i >= int(k); i--)
template < class T > ostream& operator << (ostream& out, vector < T > v) {
out << '['; if (!v.empty()) { L(i, 0, v.size() - 2) out << v[i] << ','; out << v[v.size() - 1]; } return out << ']';
}
#define DEBUG
namespace Dbg {
template < class T > void dbg(char *f, T t) { cerr << f << " = " << t << endl; }
template < class T, class ...Ar > void dbg(char *f, T x, Ar... y) {
while (*f != ',') { cerr << *f++; } cerr << " = " << x << ","; dbg(f + 1, y...);
}
}
#ifdef DEBUG
#define gdb(...) cerr << "gdb " << __LINE__ << ": ", Dbg::dbg((char*)#__VA_ARGS__,__VA_ARGS__)
#else
#define gdb(...) void()
#define debug void()
#endif
const int N = 2505;
string result;
int deg[N], fa[N], faid[N], cur[N];
bool appear[N];
map < int, int > G[N];
void solve() {
int finish = 0, travel = 1, last = N - 1, u, lastout = 0, now = 0, rt = 0;
bool determined = 0;
vector < pair < int, int > > edge;
while (finish < travel) {
now++;
cin >> u >> deg[u];
G[last][u] = lastout;
if (now == 1) {
rt = u;
}
if (!appear[u]) {
travel++;
travel -= now == 1;
appear[u] = 1;
}
if (u == fa[last] && !determined) {
// gdb(last, G[u][last], lastout);
faid[last] = lastout;
lastout = G[u][last];
last = u;
cout << "> " /* << "Ops " */ << lastout << endl;
continue;
} else if (u != fa[last]) { // 上面新加了个坚定返回的判定, 这儿得注意多判断!
if (!fa[u]) { // 再判断一下
fa[u] = last;
}
// faid[u] = lastout; // 之前忘记更新这个了
// 瞎更新, 上面那行注释是胡说八道
}
if (last && last != N - 1) {
edge.pb({last, u});
}
last = u;
if (cur[u] == deg[u]) { // It's time to return
finish++;
lastout = faid[u];
// gdb(u, faid[u]);
determined = 1;
if (u == rt) {
break;
} // 不做这个判断会输出一个 0, 我测样例居然没发现! =.=
// cout << "Back";
} else {
lastout = ++cur[u];
determined = 0;
// cout << "Wander";
}
cout << "> " << lastout << endl;
}
for (auto &[u, v] : edge) {
if (u > v) {
swap(u, v);
}
}
sort(edge.begin(), edge.end());
edge.erase(unique(edge.begin(), edge.end()), edge.end());
cout << "! ";
for (auto [u, v] : edge) {
cout << u << ' ' << v << ' ';
}
cout << endl;
cin >> result;
me(appear, 0);
me(fa, 0);
me(faid, 0);
me(cur, 0);
L(i, 0, travel) {
map < int, int >().swap(G[i]);
}
}
int main() {
int T;
cin >> T;
while (T--) {
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3712kb
input:
2 1 1 2 1 1 1 2 1 1 1 Correct 1 3 2 2 1 3 2 2 4 2 1 3 3 1 1 3 3 1 1 3 4 2 2 2 4 2 2 2 1 3 Correct
output:
> 1 > 1 > 1 > 1 ! 1 2 > 1 > 1 > 1 > 2 > 1 > 2 > 1 > 2 > 1 > 3 > 2 > 2 > 2 > 1 ! 1 2 1 3 1 4 2 4
result:
ok correct! (2 test cases)
Test #2:
score: 0
Accepted
time: 175ms
memory: 3712kb
input:
1000 1 9 2 7 1 9 2 7 3 9 1 9 3 9 4 9 1 9 4 9 3 9 4 9 7 7 1 9 5 8 1 9 5 8 8 8 1 9 6 9 1 9 6 9 2 7 10 6 1 9 7 7 4 9 7 7 8 8 5 8 8 8 10 6 2 7 10 6 8 8 9 8 1 9 8 8 7 7 5 8 9 8 3 9 9 8 5 8 2 7 6 9 10 6 4 9 10 6 6 9 5 8 3 9 2 7 3 9 5 8 6 9 8 8 3 9 10 6 3 9 8 8 6 9 3 9 7 7 3 9 6 9 9 8 2 7 5 8 7 7 9 8 8 8 9...
output:
> 1 > 1 > 1 > 2 > 1 > 2 > 2 > 1 > 3 > 2 > 2 > 3 > 1 > 4 > 1 > 4 > 2 > 1 > 5 > 1 > 5 > 2 > 3 > 1 > 6 > 2 > 3 > 3 > 2 > 2 > 3 > 2 > 3 > 3 > 4 > 1 > 7 > 5 > 4 > 3 > 2 > 3 > 3 > 4 > 4 > 3 > 4 > 4 > 5 > 4 > 5 > 4 > 2 > 5 > 6 > 5 > 6 > 6 > 6 > 7 > 7 > 6 > 8 > 5 > 9 > 7 > 4 > 5 > 7 > 6 > 5 > 4 > 6 > 7 > 8 ...
result:
ok correct! (1000 test cases)
Test #3:
score: 0
Accepted
time: 174ms
memory: 3584kb
input:
500 1 19 2 8 1 19 2 8 17 10 1 19 3 7 1 19 3 7 20 6 1 19 4 8 1 19 4 8 3 7 11 8 1 19 5 7 1 19 5 7 7 11 1 19 6 7 1 19 6 7 5 7 6 7 17 10 2 8 17 10 6 7 11 8 3 7 11 8 8 4 1 19 7 11 5 7 7 11 16 7 1 19 8 4 11 8 8 4 15 8 1 19 9 7 1 19 9 7 4 8 12 7 1 19 10 9 1 19 10 9 5 7 10 9 17 10 14 9 1 19 11 8 16 7 13 4 1...
output:
> 1 > 1 > 1 > 2 > 1 > 2 > 1 > 2 > 2 > 1 > 3 > 1 > 3 > 2 > 3 > 1 > 4 > 1 > 4 > 2 > 1 > 5 > 1 > 5 > 2 > 3 > 3 > 2 > 2 > 3 > 4 > 2 > 3 > 3 > 1 > 6 > 2 > 2 > 3 > 1 > 7 > 2 > 3 > 3 > 1 > 8 > 1 > 8 > 2 > 3 > 1 > 9 > 1 > 9 > 2 > 4 > 3 > 4 > 1 > 10 > 4 > 2 > 1 > 11 > 2 > 3 > 3 > 3 > 5 > 4 > 4 > 5 > 6 > 5 > ...
result:
ok correct! (500 test cases)
Test #4:
score: 0
Accepted
time: 202ms
memory: 3712kb
input:
100 1 99 2 5 1 99 2 5 12 7 1 99 3 5 1 99 3 5 76 9 1 99 4 10 1 99 4 10 74 6 1 99 5 3 1 99 5 3 99 7 1 99 6 9 1 99 6 9 20 4 1 99 7 6 1 99 7 6 67 10 1 99 8 8 1 99 8 8 70 9 1 99 9 9 1 99 9 9 93 10 1 99 10 5 1 99 10 5 47 4 1 99 11 4 1 99 11 4 95 12 1 99 12 7 2 5 12 7 41 7 1 99 13 6 1 99 13 6 86 6 1 99 14 ...
output:
> 1 > 1 > 1 > 2 > 1 > 2 > 1 > 2 > 2 > 1 > 3 > 1 > 3 > 2 > 1 > 4 > 1 > 4 > 2 > 1 > 5 > 1 > 5 > 2 > 1 > 6 > 1 > 6 > 2 > 1 > 7 > 1 > 7 > 2 > 1 > 8 > 1 > 8 > 2 > 1 > 9 > 1 > 9 > 2 > 1 > 10 > 1 > 10 > 2 > 1 > 11 > 2 > 2 > 3 > 1 > 12 > 1 > 12 > 2 > 1 > 13 > 1 > 13 > 2 > 1 > 14 > 1 > 14 > 2 > 1 > 15 > 1 > ...
result:
ok correct! (100 test cases)
Test #5:
score: 0
Accepted
time: 210ms
memory: 4224kb
input:
10 1 999 2 8 1 999 2 8 717 8 1 999 3 9 1 999 3 9 311 9 1 999 4 8 1 999 4 8 876 8 1 999 5 7 1 999 5 7 866 6 1 999 6 7 1 999 6 7 687 9 1 999 7 4 1 999 7 4 587 8 1 999 8 4 1 999 8 4 98 7 1 999 9 13 1 999 9 13 935 11 1 999 10 11 1 999 10 11 232 7 1 999 11 7 1 999 11 7 84 8 1 999 12 7 1 999 12 7 595 7 1 ...
output:
> 1 > 1 > 1 > 2 > 1 > 2 > 1 > 2 > 2 > 1 > 3 > 1 > 3 > 2 > 1 > 4 > 1 > 4 > 2 > 1 > 5 > 1 > 5 > 2 > 1 > 6 > 1 > 6 > 2 > 1 > 7 > 1 > 7 > 2 > 1 > 8 > 1 > 8 > 2 > 1 > 9 > 1 > 9 > 2 > 1 > 10 > 1 > 10 > 2 > 1 > 11 > 1 > 11 > 2 > 1 > 12 > 1 > 12 > 2 > 1 > 13 > 1 > 13 > 2 > 1 > 14 > 1 > 14 > 2 > 1 > 15 > 1 >...
result:
ok correct! (10 test cases)
Test #6:
score: 0
Accepted
time: 202ms
memory: 4796kb
input:
4 1 999 2 24 1 999 2 24 293 19 1 999 3 20 1 999 3 20 804 22 1 999 4 17 1 999 4 17 992 26 1 999 5 29 1 999 5 29 134 20 1 999 6 21 1 999 6 21 883 18 1 999 7 21 1 999 7 21 10 14 1 999 8 19 1 999 8 19 214 18 1 999 9 21 1 999 9 21 420 29 1 999 10 14 816 16 1 999 11 12 1 999 11 12 814 13 1 999 12 17 1 999...
output:
> 1 > 1 > 1 > 2 > 1 > 2 > 1 > 2 > 2 > 1 > 3 > 1 > 3 > 2 > 1 > 4 > 1 > 4 > 2 > 1 > 5 > 1 > 5 > 2 > 1 > 6 > 1 > 6 > 2 > 1 > 7 > 1 > 7 > 2 > 1 > 8 > 1 > 8 > 2 > 1 > 9 > 2 > 1 > 10 > 1 > 10 > 2 > 1 > 11 > 1 > 11 > 2 > 1 > 12 > 1 > 12 > 2 > 1 > 13 > 1 > 13 > 2 > 1 > 14 > 1 > 14 > 2 > 1 > 15 > 1 > 15 > 2 ...
result:
ok correct! (4 test cases)
Test #7:
score: 0
Accepted
time: 163ms
memory: 5004kb
input:
4 1 199 2 106 1 199 2 106 114 107 1 199 3 95 1 199 3 95 74 101 1 199 4 102 1 199 4 102 56 101 1 199 5 103 1 199 5 103 117 106 1 199 6 103 1 199 6 103 4 102 44 100 1 199 7 110 1 199 7 110 178 97 1 199 8 109 1 199 8 109 2 106 8 109 20 108 1 199 9 104 1 199 9 104 85 92 1 199 10 98 1 199 10 98 128 99 1 ...
output:
> 1 > 1 > 1 > 2 > 1 > 2 > 1 > 2 > 2 > 1 > 3 > 1 > 3 > 2 > 1 > 4 > 1 > 4 > 2 > 1 > 5 > 1 > 5 > 2 > 3 > 1 > 6 > 1 > 6 > 2 > 1 > 7 > 1 > 7 > 2 > 3 > 3 > 1 > 8 > 1 > 8 > 2 > 1 > 9 > 1 > 9 > 2 > 1 > 10 > 1 > 10 > 2 > 1 > 11 > 1 > 11 > 2 > 1 > 12 > 1 > 12 > 2 > 1 > 13 > 1 > 13 > 2 > 1 > 14 > 1 > 14 > 2 > ...
result:
ok correct! (4 test cases)
Test #8:
score: 0
Accepted
time: 111ms
memory: 4608kb
input:
4 1 140 2 140 1 140 2 140 3 140 1 140 3 140 2 140 3 140 4 140 1 140 4 140 2 140 4 140 3 140 4 140 5 140 1 140 5 140 2 140 5 140 3 140 5 140 4 140 5 140 6 140 1 140 6 140 2 140 6 140 3 140 6 140 4 140 6 140 5 140 6 140 7 140 1 140 7 140 2 140 7 140 3 140 7 140 4 140 7 140 5 140 7 140 6 140 7 140 8 14...
output:
> 1 > 1 > 1 > 2 > 1 > 2 > 2 > 2 > 3 > 1 > 3 > 2 > 3 > 3 > 3 > 4 > 1 > 4 > 2 > 4 > 3 > 4 > 4 > 4 > 5 > 1 > 5 > 2 > 5 > 3 > 5 > 4 > 5 > 5 > 5 > 6 > 1 > 6 > 2 > 6 > 3 > 6 > 4 > 6 > 5 > 6 > 6 > 6 > 7 > 1 > 7 > 2 > 7 > 3 > 7 > 4 > 7 > 5 > 7 > 6 > 7 > 7 > 7 > 8 > 1 > 8 > 2 > 8 > 3 > 8 > 4 > 8 > 5 > 8 > 6 ...
result:
ok correct! (4 test cases)
Test #9:
score: 0
Accepted
time: 88ms
memory: 4224kb
input:
4 1 2498 2 2 1 2498 2 2 2500 2498 2 2 2500 2498 3 2 1 2498 3 2 2500 2498 3 2 2500 2498 4 2 1 2498 4 2 2500 2498 4 2 2500 2498 5 2 1 2498 5 2 2500 2498 5 2 2500 2498 6 2 1 2498 6 2 2500 2498 6 2 2500 2498 7 2 1 2498 7 2 2500 2498 7 2 2500 2498 8 2 1 2498 8 2 2500 2498 8 2 2500 2498 9 2 1 2498 9 2 250...
output:
> 1 > 1 > 1 > 2 > 1 > 2 > 2 > 1 > 2 > 2 > 2 > 2 > 3 > 1 > 3 > 2 > 3 > 2 > 4 > 1 > 4 > 2 > 4 > 2 > 5 > 1 > 5 > 2 > 5 > 2 > 6 > 1 > 6 > 2 > 6 > 2 > 7 > 1 > 7 > 2 > 7 > 2 > 8 > 1 > 8 > 2 > 8 > 2 > 9 > 1 > 9 > 2 > 9 > 2 > 10 > 1 > 10 > 2 > 10 > 2 > 11 > 1 > 11 > 2 > 11 > 2 > 12 > 1 > 12 > 2 > 12 > 2 > 1...
result:
ok correct! (4 test cases)
Extra Test:
score: 0
Extra Test Passed