QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#398193 | #8056. Travel 2 | caijianhong | AC ✓ | 124ms | 4220kb | C++14 | 2.7kb | 2024-04-25 07:41:42 | 2024-04-25 07:41:42 |
Judging History
answer
//
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#define debug(...) fprintf(stderr, ##__VA_ARGS__)
#else
#define debug(...) void(0)
#endif
typedef long long LL;
int deg[3010];
namespace interacter {
int getpos() {
int now;
cin >> now;
cin >> deg[now];
return now;
}
void walk(int i) {
cout << ">"
<< " " << i << endl;
}
}; // namespace interacter
namespace judger {
vector<int> g[3010];
int you;
mt19937 rng{random_device{}()};
void init() {
int n = 5;
for (int i = 1; i <= n; i++) g[i].clear();
you = rng() % n + 1;
for (int i = 2; i <= n; i++) {
int f = rng() % (i - 1) + 1;
g[f].push_back(i), g[i].push_back(f);
}
int m = rng() % (n / 2);
for (int i = 1; i <= m; i++) {
int u = rng() % n + 1, v = rng() % n + 1;
while (u == v || find(g[u].begin(), g[u].end(), v) != g[u].end()) {
u = rng() % n + 1, v = rng() % n + 1;
}
g[u].push_back(v);
g[v].push_back(u);
}
debug(": ");
for (int i = 1; i <= n; i++)
for (int v : g[i])
if (v > i) debug("%d %d ", i, v);
debug("\n");
}
void test() {
g[1] = {2, 3, 5};
g[2] = {1, 4};
g[3] = {1, 5};
g[4] = {2};
g[5] = {1, 3};
you = 1;
}
void walk(int i) {
//debug("walk: now = %d, i = %d\n", you, i);
you = g[you][i - 1];
}
int getpos() {
//debug("getpos: now = %d, deg = %d\n", you, (int)g[you].size());
deg[you] = g[you].size();
return you;
}
}; // namespace judger
#ifndef LOCAL
using interacter::getpos;
using interacter::walk;
#else
using judger::getpos;
using judger::walk;
#endif
int n, m, fa[3010];
basic_string<int> g[3010];
int now;
int mian() {
#ifdef LOCAL
judger::init();
//judger::test();
#endif
memset(fa, -1, sizeof fa);
int st = now = getpos(), maxd = st;
g[st].clear();
fa[st] = 0;
while (now) {
int u = now;
if (g[u].size() == deg[u]) {
if (u == st) break;
walk(find(g[u].begin(), g[u].end(), fa[u]) - g[u].begin() + 1);
now = getpos();
} else {
walk(g[u].size() + 1);
int v = now = getpos();
g[u] += v;
if (fa[v] == -1)
fa[v] = u, g[v].clear(), maxd = max(maxd, v);
else if (v == fa[u]) {
walk(find(g[v].begin(), g[v].end(), u) - g[v].begin() + 1);
now = getpos();
}
}
}
cout << "!"
<< " ";
for (int i = 1; i <= maxd; i++)
for (int v : g[i])
if (v > i) cout << i << " " << v << " ";
cout << endl;
#ifndef LOCAL
string stat;
cin >> stat;
if (stat != "Correct") cout << ":(" << endl, exit(0);
#endif
return 0;
}
int main() {
#ifndef LOCAL
cin.tie(nullptr)->sync_with_stdio(false);
#endif
int t;
cin >> t;
while (t--) mian();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3828kb
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: 124ms
memory: 4032kb
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: 105ms
memory: 3792kb
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: 89ms
memory: 3756kb
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: 78ms
memory: 3952kb
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: 100ms
memory: 3960kb
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: 60ms
memory: 4220kb
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: 43ms
memory: 3972kb
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: 54ms
memory: 3784kb
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