3228 2023. 02. 22 22:01:56 zsombor Vizeskannák cpp17 Elfogadva 40/40 17ms 6636 KiB
#include <iostream>
#include <vector>
#include <queue>
#include <set>
using namespace std;

struct str {
    int aa, bb, cc, ddis;
};

int A, B, C, L, a = 0, b = 0, c = 0, dis = 0, at;
queue <str> q;
set <pair <pair <int, int>, int>> s;

void add() {
    if (s.count({ {a,b},c })) return;
    if (a == L || b == L || c == L) { cout << dis; exit(0); }
    s.insert({ {a,b},c });
    str st; st.aa = a; st.bb = b; st.cc = c; st.ddis = dis;
    q.push(st);
}

void ont() {
    dis++;

    at = min(a, B - b);
    a -= at; b += at;
    add();
    a += at; b -= at;

    at = min(a, C - c);
    a -= at; c += at;
    add();
    a += at; c -= at;

    at = min(b, A - a);
    b -= at; a += at;
    add();
    b += at; a -= at;

    at = min(b, C - c);
    b -= at; c += at;
    add();
    b += at; c -= at;

    at = min(c, A - a);
    c -= at; a += at;
    add();
    c += at; a -= at;

    at = min(c, B - b);
    c -= at; b += at;
    add();
    c += at; b -= at;
}

int main()
{
    cin >> A >> B >> C >> L;
    a = A; add();
    while (q.size()) {
        str st = q.front(); q.pop();
        a = st.aa; b = st.bb; c = st.cc; dis = st.ddis;
        ont();
    }
    cout << -1;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1684 KiB
2 Elfogadva 0/0 3ms 1992 KiB
3 Elfogadva 1/1 3ms 2076 KiB
4 Elfogadva 1/1 3ms 2304 KiB
5 Elfogadva 1/1 3ms 2512 KiB
6 Elfogadva 1/1 3ms 2712 KiB
7 Elfogadva 1/1 3ms 2836 KiB
8 Elfogadva 1/1 3ms 2912 KiB
9 Elfogadva 1/1 3ms 3168 KiB
10 Elfogadva 1/1 3ms 3384 KiB
11 Elfogadva 1/1 3ms 3516 KiB
12 Elfogadva 1/1 3ms 3684 KiB
13 Elfogadva 2/2 2ms 3772 KiB
14 Elfogadva 2/2 3ms 3764 KiB
15 Elfogadva 2/2 2ms 3852 KiB
16 Elfogadva 2/2 2ms 3864 KiB
17 Elfogadva 2/2 2ms 3868 KiB
18 Elfogadva 2/2 3ms 3868 KiB
19 Elfogadva 2/2 3ms 3988 KiB
20 Elfogadva 2/2 3ms 4360 KiB
21 Elfogadva 2/2 3ms 4268 KiB
22 Elfogadva 2/2 2ms 4264 KiB
23 Elfogadva 2/2 3ms 4292 KiB
24 Elfogadva 2/2 10ms 5644 KiB
25 Elfogadva 2/2 8ms 5308 KiB
26 Elfogadva 2/2 17ms 6636 KiB
27 Elfogadva 2/2 13ms 6256 KiB