QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#556449 | #2830. Data Structure | ucup-team1198# | AC ✓ | 98ms | 20044kb | C++20 | 6.6kb | 2024-09-10 18:26:14 | 2024-09-10 18:26:15 |
Judging History
answer
#include <map>
#include <set>
#include <array>
#include <cmath>
#include <deque>
#include <bitset>
#include <random>
#include <string>
#include <vector>
#include <cassert>
#include <complex>
#include <iomanip>
#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <unordered_set>
using namespace std;
void solve(int n, int m) {
vector<vector<int>> stacks(m);
vector<pair<int, int>> id(n, make_pair(-1, -1));
for (int i = 0; i < m; ++i) {
int k;
cin >> k;
stacks[i].resize(k);
for (int j = 0; j < k; ++j) {
cin >> stacks[i][j];
--stacks[i][j];
if (id[stacks[i][j]].first == -1)
id[stacks[i][j]].first = i;
else
id[stacks[i][j]].second = i;
}
}
vector<pair<int, int>> ans;
set<int> empty;
for (int i = 0; i < m; ++i) {
if (stacks[i].empty())
empty.emplace(i);
}
auto do_move = [&](int from, int to) {
int r = stacks[from].back();
stacks[from].pop_back();
if (id[r].first == from)
id[r].first = to;
else
id[r].second = to;
stacks[to].emplace_back(r);
if (stacks[from].empty())
empty.emplace(from);
if (stacks[to].size() == 1)
empty.erase(to);
ans.emplace_back(from, to);
/*for (int i = 0; i < m; ++i) {
for (int x : stacks[i])
cerr << x;
cerr << '\t';
}
cerr << '\n';*/
};
auto is_up = [&](int c, int i) {
return stacks[i].back() == c;
};
deque<int> Q;
for (int i = 0; i < n; ++i) {
auto [a, b] = id[i];
if (stacks[a].size() == 1 && stacks[b].size() == 1) {
Q.emplace_back(i);
} else if (stacks[a].size() == 1) {
if (is_up(i, b))
Q.emplace_back(i);
} else if (stacks[b].size() == 1) {
if (is_up(i, a))
Q.emplace_back(i);
}
}
while (!Q.empty()) {
int i = Q.front();
cerr << "q : " << i << '\n';
Q.pop_front();
auto [a, b] = id[i];
if (stacks[a].size() == 1 && stacks[b].size() == 1) {
do_move(a, b);
} else if (stacks[a].size() == 1) {
do_move(b, a);
int j = stacks[b][0];
int c = b ^ id[j].first ^ id[j].second;
if (is_up(j, c))
Q.emplace_back(j);
} else {
do_move(a, b);
int j = stacks[a][0];
int c = a ^ id[j].first ^ id[j].second;
if (is_up(j, c))
Q.emplace_back(j);
}
}
auto fix_path = [&](int c) {
vector<int> cols;
vector<int> stack_ids;
int cur_stack;
auto [a, b] = id[c];
if (stacks[a].size() == 1 && stacks[b].size() == 1) {
do_move(a, b);
return true;
}
if (stacks[a].size() == 1) {
stack_ids.emplace_back(a);
cur_stack = b;
} else {
stack_ids.emplace_back(b);
cur_stack = a;
}
while (true) {
cols.emplace_back(c);
stack_ids.emplace_back(cur_stack);
if (stacks[cur_stack].size() == 1)
break;
int c2 = stacks[cur_stack][0] ^ stacks[cur_stack][1] ^ c;
int stack2 = id[c2].first ^ id[c2].second ^ cur_stack;
c = c2;
cur_stack = stack2;
}
int st = 0;
while (st < cols.size()) {
int i = st;
while (stacks[stack_ids[i + 1]][0] == cols[i])
++i;
int mid = i;
while (i < cols.size() && stacks[stack_ids[i + 1]].back() == cols[i])
++i;
if (empty.empty())
return false;
int e = *empty.begin();
do_move(stack_ids[mid], e);
do_move(stack_ids[mid + 1], e);
for (int j = mid; j > st; --j)
do_move(stack_ids[j - 1], stack_ids[j]);
for (int j = mid + 1; j < i; ++j)
do_move(stack_ids[j + 1], stack_ids[j]);
st = i;
}
return true;
};
for (int i = 0; i < n; ++i) {
auto [a, b] = id[i];
if (stacks[a].size() == 1 || stacks[b].size() == 1) {
if (!fix_path(i)) {
cout << -1 << '\n';
return;
}
}
}
// cycles
for (int i = 0; i < n; ++i) {
auto [a, b] = id[i];
if (a == b)
continue;
vector<int> cols;
int cur_c = i;
int pre_i = a;
while (true) {
cols.emplace_back(cur_c);
int stack_id = id[cur_c].first ^ id[cur_c].second ^ pre_i;
int c2 = stacks[stack_id][0] ^ stacks[stack_id][1] ^ cur_c;
cur_c = c2;
pre_i = stack_id;
if (cur_c == i)
break;
}
int both_up = -1;
for (int c : cols) {
auto [i1, j1] = id[c];
if (is_up(c, i1) && is_up(c, j1))
both_up = c;
}
if (both_up == -1) {
// good cycle
if (!is_up(i, b)) {
reverse(cols.begin() + 1, cols.end());
swap(a, b);
}
if (empty.empty()) {
cout << -1 << '\n';
return;
}
for (int c : cols)
cerr << c << ' ';
cerr << '\n';
int e = *empty.begin();
do_move(b, e);
pre_i = b;
for (int j = 1; j < cols.size(); ++j) {
int c = cols[j];
int cur_i = id[c].first ^ id[c].second ^ pre_i;
do_move(cur_i, pre_i);
pre_i = cur_i;
}
do_move(pre_i, e);
} else {
// bad cycle
vector<int> c;
vector<int> d;
vector<int> is;
vector<int> js;
pre_i = id[both_up].first;
cur_c = stacks[pre_i][0] ^ stacks[pre_i][1] ^ both_up;
while (!is_up(cur_c, pre_i)) {
c.emplace_back(cur_c);
is.emplace_back(pre_i);
int cur_i = id[cur_c].first ^ id[cur_c].second ^ pre_i;
int c2 = stacks[cur_i][0] ^ stacks[cur_i][1] ^ cur_c;
cur_c = c2;
pre_i = cur_i;
}
pre_i = id[both_up].second;
cur_c = stacks[pre_i][0] ^ stacks[pre_i][1] ^ both_up;
while (!is_up(cur_c, pre_i)) {
d.emplace_back(cur_c);
js.emplace_back(pre_i);
int cur_i = id[cur_c].first ^ id[cur_c].second ^ pre_i;
int c2 = stacks[cur_i][0] ^ stacks[cur_i][1] ^ cur_c;
cur_c = c2;
pre_i = cur_i;
}
if (empty.empty()) {
cout << -1 << '\n';
return;
}
int e = *empty.begin();
do_move(is[0], e);
do_move(js[0], e);
for (int i = 1; i < is.size(); ++i)
do_move(is[i], is[i - 1]);
for (int i = 1; i < js.size(); ++i)
do_move(js[i], js[i - 1]);
if (!fix_path(c.back())) {
cout << -1 << '\n';
return;
}
}
}
cout << ans.size() << '\n';
for (auto [a, b] : ans)
cout << a + 1 << ' ' << b + 1 << '\n';
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n, m;
while (cin >> n >> m) {
solve(n, m);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3864kb
input:
2 3 2 1 2 2 1 2 0 1 1 2 1 1 3 4 2 1 3 2 2 3 1 1 1 2
output:
3 1 3 2 3 1 2 0 -1
result:
ok 3 cases passed. max #moves/#balls = 1.500000000
Test #2:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
1 2 1 1 1 1 1 3 1 1 0 1 1 1 4 1 1 1 1 0 0 1 1 2 1 1 1 2 2 1 1 0 1 3 0 0 2 1 1
output:
1 1 2 1 1 3 1 1 2 0 0 0
result:
ok 6 cases passed. max #moves/#balls = 1.000000000
Test #3:
score: 0
Accepted
time: 1ms
memory: 3556kb
input:
2 4 1 1 1 2 1 2 1 1 2 5 1 1 1 2 0 1 1 1 2 2 6 0 1 1 0 1 1 1 2 1 2 2 4 1 2 1 1 1 1 1 2 2 5 1 1 0 1 2 1 2 1 1 2 6 1 2 0 1 1 0 1 1 1 2 2 4 1 1 1 2 1 2 1 1 2 5 0 1 2 1 1 1 1 1 2 2 6 1 1 0 1 2 1 2 0 1 1 2 3 2 2 1 1 1 1 2 2 4 2 2 1 1 1 0 1 2 2 5 1 1 0 1 2 2 1 2 0 2 3 1 2 2 1 2 1 1 2 4 1 1 2 2 1 1 2 0 2 5 ...
output:
2 1 4 2 3 2 1 4 2 5 2 2 4 5 6 2 2 3 1 4 2 1 5 3 4 2 3 5 1 6 2 1 4 2 3 2 3 4 2 5 2 1 6 3 4 2 1 2 1 3 2 1 2 1 4 2 4 3 1 4 2 2 1 2 3 2 2 1 2 3 2 1 3 1 4 -1 3 2 1 3 1 2 3 3 2 1 4 1 2 4 -1 3 2 3 1 2 1 3 3 1 3 2 1 2 3 1 2 3 1 3 4 1 1 4 0 0 0
result:
ok 27 cases passed. max #moves/#balls = 1.500000000
Test #4:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
3 6 1 1 1 2 1 2 1 3 1 3 1 1 3 7 1 3 0 1 2 1 2 1 1 1 1 1 3 3 8 0 1 3 1 2 0 1 1 1 1 1 2 1 3 3 6 1 3 1 3 1 2 1 1 1 1 1 2 3 7 1 1 1 3 1 1 1 2 1 2 1 3 0 3 8 1 1 1 2 0 1 3 1 2 0 1 3 1 1 3 6 1 3 1 1 1 2 1 3 1 2 1 1 3 7 1 1 1 2 0 1 1 1 3 1 3 1 2 3 8 1 2 1 1 1 3 1 2 0 1 3 0 1 1 3 6 1 2 1 2 1 3 1 1 1 1 1 3 3 ...
output:
3 1 6 2 3 4 5 3 5 6 3 4 1 7 3 5 6 3 7 2 8 3 4 5 3 6 1 2 3 1 3 4 5 2 6 3 1 8 2 5 4 7 3 2 6 3 5 1 4 3 1 4 2 7 5 6 3 2 8 1 4 3 6 3 4 5 1 2 3 6 3 2 5 4 7 3 6 3 3 4 1 2 5 8 3 1 6 2 5 3 4 3 5 6 1 3 4 7 3 6 7 2 5 4 8 3 1 2 3 6 4 5 3 1 3 5 6 2 7 3 3 7 2 4 6 8 3 1 5 4 6 2 3 3 4 7 1 5 2 3 3 1 6 5 7 4 8 3 4 6 ...
result:
ok 180 cases passed. max #moves/#balls = 1.333333333
Test #5:
score: 0
Accepted
time: 0ms
memory: 3520kb
input:
4 8 1 3 1 3 1 4 1 1 1 2 1 1 1 4 1 2 4 9 1 3 0 1 2 1 1 1 4 1 1 1 4 1 2 1 3 4 10 1 1 1 3 1 3 1 2 1 2 0 1 1 1 4 1 4 0 4 8 1 4 1 3 1 2 1 2 1 1 1 4 1 1 1 3 4 9 1 4 1 3 1 1 1 3 1 4 1 2 1 1 1 2 0 4 10 1 4 1 1 1 2 1 3 0 0 1 2 1 1 1 3 1 4 4 8 1 2 1 4 1 3 1 4 1 2 1 3 1 1 1 1 4 9 1 1 1 4 1 3 1 2 1 3 1 2 0 1 4 ...
output:
4 4 6 5 8 1 2 3 7 4 4 6 3 8 1 9 5 7 4 1 7 4 5 2 3 8 9 4 5 7 3 4 2 8 1 6 4 3 7 6 8 2 4 1 5 4 2 8 3 7 4 9 1 10 4 7 8 1 5 3 6 2 4 4 1 9 4 6 3 5 2 8 4 4 7 2 3 8 10 5 6 4 1 3 4 7 2 8 5 6 4 2 9 1 7 5 6 3 4 4 2 10 1 9 4 5 3 8 4 2 5 1 3 4 8 6 7 4 1 5 3 8 4 9 2 7 4 3 6 2 9 5 7 1 8 4 2 8 6 7 1 5 3 4 4 2 8 6 7...
result:
ok 1575 cases passed. max #moves/#balls = 1.500000000
Test #6:
score: 0
Accepted
time: 64ms
memory: 3616kb
input:
5 10 1 1 1 4 1 2 1 4 1 5 1 2 1 3 1 5 1 1 1 3 5 11 1 1 1 3 1 1 1 2 1 5 1 2 0 1 5 1 4 1 3 1 4 5 12 1 2 0 1 1 1 5 1 2 1 4 1 3 1 4 0 1 5 1 3 1 1 5 10 1 3 1 5 1 1 1 1 1 2 1 4 1 4 1 5 1 2 1 3 5 11 1 3 1 5 1 2 1 2 1 4 1 3 1 1 1 1 0 1 4 1 5 5 12 1 3 1 4 1 2 0 1 5 1 1 1 2 1 1 1 4 1 5 0 1 3 5 10 1 4 1 5 1 3 1...
output:
5 1 9 3 6 7 10 2 4 5 8 5 1 3 4 6 2 10 9 11 5 8 5 3 12 1 5 7 11 6 8 4 10 5 3 4 5 9 1 10 6 7 2 8 5 7 8 3 4 1 6 5 10 2 11 5 6 8 3 7 1 12 2 9 5 10 5 4 7 8 9 3 10 1 5 2 6 5 2 4 1 6 5 7 8 9 3 11 5 1 7 2 3 10 11 8 9 4 5 5 8 10 4 5 6 7 2 9 1 3 5 6 7 1 11 4 5 2 3 8 9 5 2 6 4 11 8 9 1 7 3 10 5 7 8 1 10 4 5 3 ...
result:
ok 17010 cases passed. max #moves/#balls = 1.400000000
Test #7:
score: 0
Accepted
time: 55ms
memory: 3868kb
input:
6 11 1 5 1 6 1 2 1 4 1 1 1 5 1 4 1 3 1 6 2 2 3 1 1 6 9 1 6 2 1 1 2 4 4 1 2 2 6 2 0 2 5 3 0 2 5 3 6 6 2 4 4 2 5 6 2 3 6 2 2 2 2 3 5 2 1 1 6 8 2 2 1 2 3 4 1 6 2 1 2 2 3 5 0 1 6 2 4 5 6 9 1 6 1 4 1 3 1 5 2 3 1 2 4 2 2 2 1 1 6 1 5 6 7 1 4 2 2 3 2 1 6 2 1 4 2 6 2 2 5 5 1 3 6 8 1 2 2 3 5 1 1 2 4 4 0 2 5 1...
output:
6 5 11 10 8 4 7 1 6 2 9 3 10 5 5 4 1 5 7 1 9 1 7 9 -1 8 3 7 1 3 4 1 4 3 5 4 8 4 2 8 2 5 7 4 9 1 8 5 1 7 1 3 5 6 7 2 6 5 2 7 4 1 5 2 3 5 3 4 5 6 3 7 1 2 6 8 7 2 8 5 1 9 2 6 3 10 5 7 8 11 6 1 6 1 5 3 1 4 1 2 4 2 3 -1 6 7 12 2 3 1 11 5 10 6 8 4 9 3 7 6 5 7 3 5 8 1 2 7 2 9 1 4 7 3 4 5 3 8 3 5 8 6 5 9 2 ...
result:
ok 14285 cases passed. max #moves/#balls = 1.500000000
Test #8:
score: 0
Accepted
time: 83ms
memory: 3632kb
input:
7 10 2 4 3 1 1 2 2 2 2 4 3 2 7 7 2 6 6 2 5 5 0 1 1 0 7 12 1 2 1 6 1 6 1 5 2 4 1 1 1 2 4 3 1 7 1 5 1 3 1 2 1 7 7 15 1 4 1 6 1 2 1 4 1 6 1 5 1 7 1 1 1 3 0 1 7 1 5 1 1 1 3 1 2 7 7 2 7 3 2 2 3 2 5 7 2 1 1 2 6 6 2 2 5 2 4 4 7 12 2 3 2 1 7 2 6 3 1 4 1 2 1 5 1 1 1 4 1 5 1 1 1 6 1 7 7 14 2 3 5 0 1 2 1 6 1 4...
output:
4 2 9 1 2 4 2 1 4 7 5 6 1 11 7 10 4 9 2 3 8 12 5 7 7 8 13 3 15 9 14 1 4 6 12 2 5 7 11 -1 7 7 10 1 5 4 8 6 9 2 12 3 1 3 11 7 10 13 3 14 5 8 1 7 4 12 9 11 1 6 7 1 6 3 1 10 1 7 3 8 10 4 8 4 7 7 5 12 7 10 8 9 2 11 1 4 6 2 3 6 7 2 10 5 11 4 6 3 1 7 1 5 3 9 7 7 4 1 2 7 5 9 4 6 8 2 10 2 8 10 7 4 5 3 8 2 9 ...
result:
ok 12500 cases passed. max #moves/#balls = 1.428571429
Test #9:
score: 0
Accepted
time: 59ms
memory: 3636kb
input:
8 16 1 2 0 1 5 1 8 1 1 1 5 2 4 4 1 8 1 6 1 1 1 2 0 2 7 7 1 3 1 6 1 3 8 13 1 8 1 4 1 2 1 6 2 1 3 2 1 3 1 7 1 2 1 5 1 6 1 8 2 4 5 1 7 8 9 2 1 3 2 4 5 2 7 2 2 7 8 2 4 8 2 1 6 2 5 2 2 6 3 0 8 17 1 1 1 4 1 3 1 7 1 2 1 2 1 7 1 5 1 3 1 4 1 6 1 8 1 5 1 6 1 8 1 1 0 8 15 1 6 1 4 0 1 5 1 7 1 3 1 2 1 8 1 6 1 7 ...
output:
6 5 10 1 11 14 16 3 6 9 15 4 8 9 3 8 12 9 4 10 7 13 1 11 2 12 5 1 6 1 5 6 -1 8 1 16 5 6 3 9 2 10 8 13 11 14 4 7 12 15 9 7 15 6 14 1 9 5 10 8 12 11 1 13 1 2 11 4 13 9 3 1 7 1 4 3 5 7 4 5 8 4 9 4 2 8 2 9 7 2 6 1 2 8 2 10 1 4 10 5 8 4 5 8 7 9 2 11 4 16 3 8 10 12 5 13 1 6 14 15 10 5 8 3 5 7 5 4 3 4 7 1 ...
result:
ok 11111 cases passed. max #moves/#balls = 1.500000000
Test #10:
score: 0
Accepted
time: 76ms
memory: 3588kb
input:
9 13 1 2 2 4 5 2 5 4 2 2 9 1 8 1 3 1 1 1 3 1 1 2 7 6 1 9 1 8 2 7 6 9 13 1 4 2 5 6 2 7 5 2 9 3 1 4 2 9 7 0 2 8 6 2 1 3 0 1 2 1 2 2 8 1 9 18 1 4 1 7 1 7 1 9 1 8 1 8 1 2 1 3 1 6 1 2 1 1 1 3 1 5 1 1 1 6 1 5 1 4 1 9 9 13 0 2 6 7 2 2 2 1 3 2 6 8 2 9 1 2 1 4 1 9 2 8 7 0 1 4 1 3 2 5 5 9 17 1 9 2 1 3 1 2 1 5...
output:
11 7 9 6 8 5 12 4 11 1 4 3 1 2 3 2 1 10 2 13 2 10 13 11 11 12 1 5 4 1 9 1 13 9 2 7 8 7 3 2 6 3 4 6 13 8 9 11 14 7 10 8 12 1 17 13 16 9 15 2 3 5 6 4 18 8 4 12 7 11 6 7 6 8 2 1 9 1 5 9 2 5 9 3 11 2 7 6 12 4 10 9 17 15 16 5 14 1 13 2 6 13 5 3 6 3 9 6 5 9 1 4 10 4 1 10 11 1 7 11 7 1 8 5 2 8 2 5 8 5 12 1...
result:
ok 10000 cases passed. max #moves/#balls = 1.444444444
Test #11:
score: 0
Accepted
time: 64ms
memory: 3840kb
input:
10 19 1 1 1 3 1 10 1 8 1 1 1 4 1 2 1 2 1 5 1 7 1 5 2 6 6 1 7 1 3 1 4 1 9 1 10 1 8 1 9 10 19 1 8 1 10 2 7 7 1 2 1 5 1 9 1 1 0 1 6 1 9 1 1 1 6 1 5 0 1 2 1 10 2 4 4 2 3 3 1 8 10 10 2 5 5 2 2 3 2 8 4 2 2 7 2 6 9 2 3 10 2 10 1 2 6 4 2 7 8 2 9 1 10 19 1 4 1 5 1 4 1 9 2 3 9 1 10 1 1 1 7 1 6 1 8 1 10 1 5 1 ...
output:
9 1 5 7 8 2 14 6 15 9 11 10 13 4 18 16 19 3 17 7 7 11 4 15 5 13 9 12 1 19 6 10 2 16 -1 10 7 17 13 16 1 3 2 12 9 14 8 18 10 15 5 4 6 11 5 19 11 4 19 5 6 10 12 15 16 3 17 1 9 8 14 5 13 18 1 7 18 7 1 7 8 16 12 18 6 13 10 14 1 3 17 19 5 9 10 9 16 4 6 8 12 7 14 10 17 3 13 2 15 11 18 5 3 1 5 10 8 12 10 13...
result:
ok 9090 cases passed. max #moves/#balls = 1.500000000
Test #12:
score: 0
Accepted
time: 55ms
memory: 3576kb
input:
11 15 2 11 11 2 3 3 1 2 0 2 8 5 1 2 2 6 4 2 4 5 1 1 1 1 1 9 1 10 2 8 6 2 7 7 2 9 10 11 17 2 4 8 1 11 2 6 7 1 9 1 9 1 5 1 2 1 2 1 5 1 10 1 3 1 1 1 11 2 10 8 1 1 2 3 7 2 4 6 11 21 1 10 1 6 1 3 1 9 1 8 1 1 1 5 1 10 1 5 1 4 1 8 1 9 1 11 1 6 1 11 1 7 1 1 1 4 2 2 2 1 7 1 3 11 15 1 5 1 1 1 2 2 3 3 2 10 7 0...
output:
9 9 10 3 6 15 12 11 15 5 3 8 3 7 8 13 7 5 13 13 12 15 7 8 6 9 4 5 2 13 16 2 3 2 11 16 17 3 1 4 14 4 17 1 10 14 10 6 17 3 21 10 18 7 9 2 14 16 20 5 11 4 12 1 8 13 15 11 2 9 15 3 12 11 1 10 8 12 8 15 13 1 14 1 7 14 5 7 5 13 10 16 8 7 10 5 11 14 18 3 6 12 17 4 15 2 19 9 13 5 16 11 7 10 7 12 5 7 8 5 9 8...
result:
ok 8333 cases passed. max #moves/#balls = 1.363636364
Test #13:
score: 0
Accepted
time: 52ms
memory: 3680kb
input:
12 25 1 9 1 10 1 4 1 7 1 5 1 3 1 6 1 1 1 12 1 3 1 2 1 9 1 11 1 2 0 1 10 1 7 1 12 1 11 1 4 1 6 1 5 1 1 1 8 1 8 12 19 1 2 1 12 2 8 8 2 1 3 0 2 3 4 1 5 2 11 11 2 1 5 2 9 6 1 12 1 7 1 7 2 6 9 1 2 1 4 1 10 1 10 0 12 14 2 2 4 2 8 8 2 1 3 2 9 9 2 6 12 2 6 1 0 2 10 10 2 5 5 2 3 12 0 2 4 7 2 7 2 2 11 11 12 1...
output:
12 8 23 11 14 6 10 3 20 5 22 7 21 4 17 24 25 1 12 2 16 13 19 9 18 11 1 15 6 16 9 7 12 13 17 18 2 11 4 6 4 9 10 1 14 10 14 1 9 5 7 10 7 3 10 6 3 5 6 13 5 12 13 1 12 1 5 10 7 5 12 5 4 12 6 4 8 13 14 13 3 8 1 3 7 1 6 14 12 11 24 7 14 5 19 1 10 12 21 16 25 2 6 4 20 8 22 9 17 3 13 15 18 11 2 12 4 5 8 2 1...
result:
ok 7692 cases passed. max #moves/#balls = 1.416666667
Test #14:
score: 0
Accepted
time: 88ms
memory: 3576kb
input:
13 15 2 8 8 2 6 6 2 1 1 2 3 3 2 11 11 2 2 5 2 5 13 1 4 1 12 2 2 13 1 12 2 10 10 1 4 2 9 9 2 7 7 13 21 2 11 11 1 9 1 2 1 9 1 13 1 1 1 13 1 5 2 12 8 2 7 7 1 5 1 6 1 6 2 4 3 1 1 0 2 10 10 1 2 2 4 3 0 2 8 12 13 24 1 8 1 7 1 6 1 3 1 5 1 9 1 2 1 13 1 2 1 12 2 10 10 1 3 1 1 1 8 1 4 1 12 1 6 1 5 1 7 1 4 2 1...
output:
6 8 13 9 11 7 8 10 8 6 7 6 10 12 6 15 3 18 8 11 12 13 2 4 5 7 14 2 19 2 14 19 9 3 21 9 21 3 11 13 23 7 9 4 12 15 20 5 18 3 17 2 19 1 14 6 24 10 16 8 22 12 8 15 10 6 13 20 9 7 3 17 4 16 1 11 2 14 9 10 5 1 19 1 5 19 12 10 16 1 27 9 18 12 26 4 20 5 23 8 14 3 6 7 17 11 19 2 25 21 22 13 3 17 11 15 2 9 5 ...
result:
ok 7142 cases passed. max #moves/#balls = 1.384615385
Test #15:
score: 0
Accepted
time: 75ms
memory: 3852kb
input:
14 24 1 3 1 11 1 2 1 7 1 5 0 1 11 2 4 8 2 12 5 2 9 4 1 3 1 10 2 12 9 1 1 0 2 13 13 1 2 1 7 1 6 1 10 1 14 1 1 1 6 2 8 14 14 27 1 8 1 10 1 1 1 1 1 12 1 14 1 6 1 11 1 5 1 12 1 7 1 4 1 10 1 14 1 7 1 9 1 2 1 6 1 11 1 9 2 3 3 1 2 1 4 1 13 1 8 1 5 1 13 14 22 1 14 2 7 5 1 3 1 10 1 9 1 9 2 13 5 2 12 2 2 6 6 ...
output:
13 14 22 3 17 1 11 9 5 19 23 4 18 12 20 2 7 24 21 8 24 10 8 13 10 9 13 13 3 4 17 22 12 23 9 26 7 18 11 15 1 25 16 20 2 13 8 19 5 10 24 27 6 14 12 19 22 8 13 3 15 5 6 4 21 14 20 1 17 8 11 2 1 7 1 10 2 7 10 13 4 15 16 25 6 21 7 12 11 18 2 19 14 17 1 3 9 10 8 20 13 1 23 1 13 23 14 8 19 4 9 7 23 3 28 22...
result:
ok 6666 cases passed. max #moves/#balls = 1.357142857
Test #16:
score: 0
Accepted
time: 51ms
memory: 3684kb
input:
15 22 0 2 6 13 1 13 1 4 1 8 1 8 0 2 10 3 2 11 15 2 15 7 1 5 2 2 12 2 11 12 1 6 1 7 2 9 9 1 5 2 1 1 2 3 10 2 14 14 1 4 1 2 15 24 1 2 1 4 2 8 11 1 9 0 1 1 2 5 5 1 9 2 6 6 1 12 1 3 1 3 2 7 13 2 11 10 1 14 1 12 2 10 4 1 15 2 8 7 1 2 0 1 1 1 15 2 13 14 15 24 0 1 14 1 14 2 1 1 1 10 1 12 1 5 2 10 6 1 13 1 ...
output:
14 4 21 11 17 10 15 5 6 2 3 9 10 2 14 12 1 13 1 22 12 9 13 8 2 19 8 19 2 13 6 22 1 20 11 12 17 2 4 8 10 16 24 15 18 23 14 17 13 24 3 14 19 13 3 19 12 10 13 7 12 8 18 15 16 23 24 6 22 9 14 2 3 5 8 17 1 19 1 17 19 15 6 17 2 3 14 3 12 14 16 6 10 6 5 16 2 5 15 2 11 2 10 15 12 11 7 10 13 10 7 13 16 15 19...
result:
ok 6250 cases passed. max #moves/#balls = 1.400000000
Test #17:
score: 0
Accepted
time: 72ms
memory: 3532kb
input:
16 23 1 3 1 9 0 1 9 1 14 1 4 2 5 14 1 10 2 16 5 2 6 6 2 1 1 2 16 11 2 12 12 1 2 1 4 0 2 8 8 2 11 13 1 7 1 10 2 2 15 2 3 15 2 7 13 16 29 0 1 6 1 3 1 7 1 14 1 12 1 9 1 3 1 10 1 14 1 13 1 2 2 6 9 1 4 1 2 2 5 1 1 8 1 16 1 4 2 1 5 1 11 1 7 2 8 10 1 15 1 12 1 11 1 15 1 16 1 13 16 28 1 13 1 8 1 9 1 12 2 15...
output:
14 6 15 2 4 8 20 7 5 9 7 21 2 22 2 14 21 1 22 23 1 18 1 19 23 12 18 9 12 17 12 15 3 8 14 19 4 22 13 7 23 9 21 26 6 25 11 29 5 10 24 27 18 28 2 13 17 23 16 1 20 16 20 1 16 13 20 7 25 16 27 6 28 19 26 12 23 9 22 2 14 24 3 10 21 4 17 1 11 15 24 5 1 18 1 5 18 15 15 21 10 19 8 14 12 18 1 13 7 23 6 1 11 1...
result:
ok 5882 cases passed. max #moves/#balls = 1.375000000
Test #18:
score: 0
Accepted
time: 64ms
memory: 3656kb
input:
17 33 1 12 2 15 4 1 5 1 13 0 1 6 1 17 1 16 1 7 1 11 1 13 1 17 1 1 1 11 1 12 1 9 1 3 1 7 1 5 1 3 1 2 1 9 1 14 2 15 4 1 1 1 10 1 10 1 8 1 2 1 16 1 14 1 8 1 6 17 23 1 9 2 13 17 1 3 1 13 1 10 2 15 16 2 12 12 2 14 4 2 5 15 1 9 1 7 1 6 2 8 8 1 2 2 4 11 1 11 2 16 5 2 2 10 1 3 1 6 2 1 1 2 14 17 1 7 17 20 2 ...
output:
18 13 25 21 29 17 20 3 19 6 33 9 18 28 32 16 22 26 27 10 14 1 15 4 11 23 31 8 30 7 12 2 1 24 1 2 24 16 3 19 12 20 11 23 1 10 18 5 15 16 14 18 8 15 2 1 22 1 4 2 8 22 17 3 6 17 9 6 9 3 15 6 17 4 6 13 6 4 13 11 4 20 4 5 11 16 5 14 16 9 14 9 20 2 7 18 2 10 18 10 7 18 25 28 9 21 5 11 13 31 4 24 12 20 2 2...
result:
ok 5555 cases passed. max #moves/#balls = 1.352941176
Test #19:
score: 0
Accepted
time: 59ms
memory: 3652kb
input:
18 19 2 8 5 2 7 11 2 1 13 2 2 2 0 2 17 11 2 14 6 2 18 18 2 3 12 2 4 3 2 8 12 2 6 14 2 9 16 2 13 1 2 15 15 2 9 16 2 10 10 2 5 4 2 7 17 18 26 2 16 4 2 10 15 1 7 1 13 1 11 1 11 2 15 10 1 14 1 5 1 8 2 9 3 2 2 9 2 4 12 1 13 1 1 1 1 1 17 1 5 2 16 6 1 7 1 8 2 12 6 1 17 2 18 3 1 14 2 2 18 18 23 2 16 16 2 18...
output:
19 14 5 3 14 3 5 9 3 11 3 10 9 18 10 1 18 1 11 7 1 12 7 12 1 2 12 6 12 19 6 2 19 13 2 16 2 13 16 21 15 16 9 18 3 20 10 21 5 6 4 14 8 25 17 23 11 3 24 3 12 11 26 24 12 26 19 4 22 4 13 22 1 13 1 19 7 1 2 7 2 1 14 10 12 6 13 16 23 17 6 14 17 14 6 11 10 15 10 2 11 19 2 7 19 4 15 20 4 7 20 -1 16 5 16 2 5...
result:
ok 5263 cases passed. max #moves/#balls = 1.388888889
Test #20:
score: 0
Accepted
time: 67ms
memory: 3652kb
input:
19 25 2 8 13 0 1 16 1 5 2 18 13 2 4 7 0 2 17 1 2 12 16 2 12 4 2 19 15 2 1 8 1 3 1 7 2 6 2 2 2 9 2 18 14 1 11 2 10 10 2 15 17 2 6 14 1 5 2 9 19 1 11 1 3 19 34 1 12 1 16 1 16 1 7 1 6 2 4 4 1 8 1 18 2 9 19 1 11 1 13 1 14 1 7 1 6 1 3 1 14 2 9 5 1 11 1 15 1 1 1 3 2 19 1 1 17 1 17 1 13 1 2 1 12 1 8 1 15 1...
output:
20 13 25 4 22 6 14 18 24 9 3 10 6 9 10 17 2 21 2 5 4 1 4 17 5 12 1 8 12 20 8 11 20 23 11 16 23 15 16 21 15 18 22 20 26 32 15 21 17 33 5 14 4 13 7 28 30 34 10 18 1 27 11 25 12 16 19 29 2 3 23 24 8 31 9 22 9 17 -1 21 24 25 5 7 17 23 14 19 18 21 2 9 11 27 6 2 8 2 1 3 4 3 15 1 6 15 20 4 8 20 12 5 16 12 ...
result:
ok 5000 cases passed. max #moves/#balls = 1.368421053
Test #21:
score: 0
Accepted
time: 48ms
memory: 3652kb
input:
20 36 1 3 1 19 1 18 1 19 1 2 1 4 1 17 2 5 6 1 1 1 12 1 14 1 20 1 11 1 13 1 7 1 15 1 16 1 3 1 1 1 16 1 11 1 4 1 8 1 15 2 9 5 1 8 1 13 1 7 1 12 1 2 2 10 10 1 17 1 18 1 14 1 20 2 6 9 20 27 2 7 13 2 6 10 0 2 11 8 2 11 2 0 1 17 2 1 1 1 15 1 19 1 19 1 14 2 4 5 1 14 2 12 8 2 7 6 2 2 12 2 3 20 2 18 20 2 3 4...
output:
20 9 19 5 30 1 18 6 22 15 28 23 26 13 21 10 29 14 27 11 34 16 24 17 20 7 32 3 33 2 4 12 35 25 1 36 25 8 36 8 1 22 12 14 9 22 26 27 7 25 10 11 4 3 15 3 17 15 5 17 4 5 18 4 19 4 13 6 24 6 20 13 18 20 19 24 1 7 23 7 2 23 16 2 1 16 21 12 16 21 28 7 13 14 24 2 10 20 22 9 17 18 26 4 11 8 29 23 30 1 2 25 2...
result:
ok 4761 cases passed. max #moves/#balls = 1.300000000
Test #22:
score: 0
Accepted
time: 28ms
memory: 3620kb
input:
70 79 2 13 14 2 49 46 1 43 2 27 27 2 5 5 2 63 50 2 63 15 2 61 25 2 17 39 2 44 26 2 15 45 2 65 2 2 64 6 2 2 28 2 55 60 2 13 68 1 40 2 30 30 1 62 2 41 60 2 16 25 1 69 1 62 2 28 23 2 46 49 2 26 57 1 35 2 66 66 2 10 69 2 33 55 1 10 2 54 9 1 32 2 11 12 1 40 1 7 1 29 2 33 54 2 12 11 2 22 1 1 29 2 6 64 2 2...
output:
79 36 45 37 41 33 75 27 62 17 35 3 47 44 50 19 23 29 22 29 31 26 3 60 3 10 26 72 10 40 17 52 17 63 40 9 63 72 9 60 52 12 19 71 12 24 71 14 24 14 19 46 14 66 46 66 14 11 27 74 27 7 11 76 74 51 76 48 51 56 48 6 29 73 29 7 6 56 73 13 7 42 13 42 7 70 33 53 70 57 53 57 33 15 36 20 36 30 15 32 37 61 37 38...
result:
ok 1000 cases passed. max #moves/#balls = 1.500000000
Test #23:
score: 0
Accepted
time: 16ms
memory: 3820kb
input:
89 125 2 6 86 1 11 1 43 1 77 1 27 2 72 88 1 52 2 26 75 1 77 2 89 86 1 60 1 18 2 20 20 1 25 2 57 75 1 3 1 55 2 38 19 2 76 2 2 22 24 1 3 2 61 61 2 39 59 2 42 74 1 56 2 71 71 1 68 2 79 87 2 81 67 1 25 2 66 21 1 37 1 70 2 40 83 1 60 1 48 1 52 2 22 24 2 62 62 1 84 2 41 23 1 69 2 32 26 1 36 1 15 2 88 72 1...
output:
88 16 21 48 92 54 93 2 105 79 88 59 96 57 107 45 114 85 91 12 108 14 30 5 47 73 116 51 78 56 112 44 87 32 117 3 75 110 113 82 118 61 98 36 94 62 76 7 37 63 106 17 123 25 90 95 109 11 35 27 122 42 52 33 115 83 119 4 9 40 64 67 2 19 2 34 67 77 34 70 19 63 70 49 3 102 3 80 102 49 80 1 4 10 4 50 1 29 50...
result:
ok 100 cases passed. max #moves/#balls = 1.169811321
Test #24:
score: 0
Accepted
time: 93ms
memory: 18916kb
input:
199990 199994 2 112787 58235 2 74630 28941 2 167642 28933 2 133872 119903 2 134119 187247 2 12074 126849 2 172463 191232 2 69306 129651 2 85342 121061 2 31874 148765 2 6567 39825 2 70847 178127 2 161417 173942 2 60884 49005 2 10700 112396 2 134185 131889 2 62930 176558 2 153356 48329 2 88968 136672 ...
output:
249866 47930 39403 45681 123950 52624 103430 29499 45681 149868 199993 33532 199993 55718 149868 174021 55718 154492 174021 40140 174021 98071 154492 33532 98071 3409 40140 127577 3409 146781 33532 183763 33532 127577 146781 177569 183763 39870 177569 128051 39870 40416 128051 47653 40416 24457 4765...
result:
ok 1 cases passed. max #moves/#balls = 1.249392470
Test #25:
score: 0
Accepted
time: 83ms
memory: 18068kb
input:
199900 199939 2 159852 65847 2 26090 50275 2 87513 124862 2 86896 171149 2 108960 21092 2 60944 176432 2 64408 168417 2 110938 48609 2 30886 178149 2 180183 52005 2 185615 173446 2 91034 36919 2 121714 75547 2 97679 89549 2 161524 190571 2 129781 26065 2 726 162459 2 28052 166745 2 193665 65435 2 45...
output:
249613 106581 195508 87499 466 141785 86599 193462 112079 111161 180271 70518 20388 177189 95960 51089 145236 42342 50137 130367 94233 13675 161933 167502 5649 83100 170999 1669 70219 141132 188272 118999 98362 45466 80993 36392 181613 184780 156194 113064 98870 73883 46654 111332 77134 149863 85671...
result:
ok 1 cases passed. max #moves/#balls = 1.248689345
Test #26:
score: 0
Accepted
time: 85ms
memory: 17732kb
input:
199000 199158 2 87128 180318 2 51427 22755 2 151883 144846 2 86404 42933 2 86031 56171 2 97601 190366 2 100929 91717 2 10606 53797 2 151688 90226 2 65599 83910 2 159670 153323 2 98395 126956 2 104190 188119 2 134860 5110 2 82527 59574 2 185228 58544 2 131591 9348 2 88390 99580 2 79913 120984 2 12854...
output:
248620 159826 170232 824 116779 65806 96668 64102 145895 184853 35084 41063 63660 96981 145392 110701 113358 103047 42388 108644 192770 110485 176389 5748 32464 28323 198599 143694 167502 3800 40526 57803 183718 162603 5916 126242 67012 181408 90168 33958 113178 96959 160229 144623 64830 59284 11561...
result:
ok 1 cases passed. max #moves/#balls = 1.249346734
Test #27:
score: 0
Accepted
time: 94ms
memory: 17472kb
input:
190000 195490 2 57925 137657 2 115225 31941 2 113825 126389 2 86640 44883 2 54487 34585 2 118366 61471 2 120619 96922 1 140665 2 42131 138488 2 115971 83797 2 79814 139047 2 182772 4122 2 134485 135722 2 83056 53620 2 4840 71513 2 58767 175090 2 55378 47553 2 158331 65564 2 2231 167672 2 45248 44008...
output:
234894 171028 51311 51528 176901 69858 98706 152451 3306 115305 173688 159587 125304 25529 168435 176707 97295 41696 23564 59173 162528 123516 184215 69130 87168 40277 103721 10703 123606 191647 146492 63632 103901 135160 49570 106094 164904 172490 43873 96687 186995 32696 110595 40106 97653 168677 ...
result:
ok 1 cases passed. max #moves/#balls = 1.236284211
Test #28:
score: 0
Accepted
time: 83ms
memory: 14900kb
input:
100000 150784 1 11363 2 48695 10015 1 45261 0 0 2 59469 34868 2 37754 54971 2 1159 2258 2 36656 7427 1 86418 0 2 58664 20429 1 53392 1 61881 2 17499 14399 1 31182 1 7141 0 2 58765 17577 1 21750 2 55759 24096 0 0 2 68221 45178 1 34307 1 952 0 1 37862 1 31349 2 79909 53730 2 61993 40470 0 1 8272 2 824...
output:
111036 111937 43798 27095 32591 23954 65389 75012 132794 4709 37327 44860 53932 58137 63677 12514 126560 40604 80635 66500 62169 101373 116825 134174 55875 15073 42199 121340 122210 71304 80637 112201 125802 20806 112227 25767 46609 24650 46902 48140 45771 64157 1068 80991 141613 49054 140135 74158 ...
result:
ok 1 cases passed. max #moves/#balls = 1.110360000
Test #29:
score: 0
Accepted
time: 98ms
memory: 20044kb
input:
199998 200000 2 197320 165241 2 136684 67821 2 38136 196111 2 36675 168634 2 193814 85383 2 188893 178378 2 107377 34791 2 77322 157440 2 51337 91683 2 141729 123337 2 88834 166216 2 172041 99918 2 81678 190214 2 145905 79139 2 184733 143722 2 20662 175460 2 73374 152647 2 111949 12058 2 7347 64349 ...
output:
250095 17813 199999 72626 199999 192276 17813 165752 192276 134563 72626 5262 200000 30899 200000 165752 5262 37687 30899 181997 165752 43247 165752 37687 181997 24936 37687 190474 37687 130329 24936 130371 130329 43247 130371 24554 43247 140583 43247 142584 24554 190474 142584 121932 190474 151951 ...
result:
ok 1 cases passed. max #moves/#balls = 1.250487505