33002023-02-24 17:36:43zsomborHanoi tornyai variáns (45)cpp17Hibás válasz 4/45323ms6736 KiB
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int a, mx = 0;
vector <vector <int>> v(4);
vector <pair <int, int>> lep;
vector <pair <int, int>> ans1;
vector <pair <int, int>> ans2;

int hol(int x) {
    for (int& i : v[1]) if (i == x) return 1;
    for (int& i : v[2]) if (i == x) return 2;
    for (int& i : v[3]) if (i == x) return 3;
    return 0;
}

void hanoi(int x, int ra) {
    if (!x) return;
    int rol = hol(x);
    if (rol != ra) {
        hanoi(x - 1, 6 / rol / ra);
        v[rol].pop_back();
        v[ra].push_back(x);
        lep.push_back({ rol,ra });
    }
    hanoi(x - 1, ra);
}

int main()
{
    while (cin >> a && a) { v[1].push_back(a); mx++; }
    while (cin >> a && a) { v[2].push_back(a); mx++; }
    while (cin >> a && a) { v[3].push_back(a); mx++; }
    hanoi(mx, 1);
    ans1 = lep;

    for (int i = 1; i <= 3; i++) v[i].clear();
    lep.clear();
    while (cin >> a && a) v[1].push_back(a);
    while (cin >> a && a) v[2].push_back(a);
    while (cin >> a && a) v[3].push_back(a);
    hanoi(mx, 1);
    ans2 = lep;
    
    cout << ans1.size() + ans2.size() << endl;
    for (auto p : ans1) cout << p.first << " " << p.second << endl;
    reverse(ans2.begin(), ans2.end());
    for (auto p : ans2) cout << p.second << " " << p.first << endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/45
1Hibás válasz0/03ms1872 KiB
2Hibás válasz0/03ms2080 KiB
3Hibás válasz0/23ms2312 KiB
4Elfogadva2/23ms2540 KiB
5Elfogadva2/23ms2748 KiB
6Hibás válasz0/33ms2832 KiB
7Hibás válasz0/23ms2836 KiB
8Hibás válasz0/23ms3044 KiB
9Hibás válasz0/24ms3064 KiB
10Hibás válasz0/24ms3120 KiB
11Hibás válasz0/24ms3212 KiB
12Hibás válasz0/27ms3224 KiB
13Hibás válasz0/218ms3492 KiB
14Hibás válasz0/239ms3944 KiB
15Hibás válasz0/254ms4696 KiB
16Időlimit túllépés0/2323ms6736 KiB
17Hibás válasz0/2123ms4960 KiB
18Hibás válasz0/2178ms5844 KiB
19Hibás válasz0/3185ms6360 KiB
20Hibás válasz0/3184ms5996 KiB
21Hibás válasz0/3186ms6416 KiB
22Hibás válasz0/385ms5912 KiB