5569 2023. 07. 30 18:30:05 111 Hanoi tornyai variáns (45) cpp14 Hibás válasz 0/45 136ms 6420 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define double long double

#define pii pair<int, int>

array<vector<int>, 3> v, b;
vector<int> p(20), q(20);
vector<pii> r;

void solve(int n, int i = -1, bool z = true) {
	if (n == 0) {
		return;
	}
	if (z) {
		i = q[n];
	}
	//cout << "task: move " << n << " to " << i+1 << endl;
	if (p[n] == i) {
		solve(n - 1, i, z);
		return;
	}
	for (int j = 0; j < 3; j++) {
		if (p[n] != j && i != j) {
			solve(n - 1, j, false);
			break;
		}
	}
	r.emplace_back(p[n], i);
	p[n] = i;
	solve(n - 1, i, z);
}

signed main() {
#ifdef CB
	ifstream fin("be1.txt");
	cin.rdbuf(fin.rdbuf());
#endif
	int N = 0;
	for (int i = 0; i < 3; i++) {
		while (true) {
			int x;
			cin >> x;
			if (x == 0) {
				break;
			}
			v[i].push_back(x);
			p[x] = i;
			N++;
		}
	}
	for (int i = 0; i < 3; i++) {
		while (true) {
			int x;
			cin >> x;
			if (x == 0) {
				break;
			}
			b[i].push_back(x);
			q[x] = i;
		}
	}
	solve(N);
	cout << r.size() << endl;
	for (int i = 0; i < r.size(); i++) {
		cout << r[i].first + 1 << " " << r[i].second + 1 << endl;
	}
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 0/45
1 Hibás válasz 0/0 3ms 2024 KiB
2 Hibás válasz 0/0 3ms 2264 KiB
3 Hibás válasz 0/2 3ms 2384 KiB
4 Hibás válasz 0/2 3ms 2636 KiB
5 Hibás válasz 0/2 3ms 2848 KiB
6 Hibás válasz 0/3 3ms 2940 KiB
7 Hibás válasz 0/2 3ms 3072 KiB
8 Hibás válasz 0/2 3ms 3168 KiB
9 Hibás válasz 0/2 4ms 3056 KiB
10 Hibás válasz 0/2 3ms 3276 KiB
11 Hibás válasz 0/2 4ms 3508 KiB
12 Hibás válasz 0/2 4ms 3728 KiB
13 Hibás válasz 0/2 6ms 3764 KiB
14 Hibás válasz 0/2 9ms 3952 KiB
15 Hibás válasz 0/2 35ms 4912 KiB
16 Hibás válasz 0/2 50ms 5900 KiB
17 Hibás válasz 0/2 82ms 5908 KiB
18 Hibás válasz 0/2 79ms 5908 KiB
19 Hibás válasz 0/3 89ms 5908 KiB
20 Hibás válasz 0/3 101ms 6188 KiB
21 Hibás válasz 0/3 136ms 6204 KiB
22 Hibás válasz 0/3 61ms 6420 KiB