248862026-02-16 14:03:22abcdVizeskannákcpp17Elfogadva 40/4014ms992 KiB
#include <bits/stdc++.h>
using namespace std;
using pii=pair<int,int>;

set<pii> memo;
queue<array<int,3>> q;

void add(int a,int b,int cur){
    if(!memo.count({a,b})){
        memo.insert({a,b});
        q.push({a,b,cur});
    }
}

int main(){
    int a,b,c,l;cin>>a>>b>>c>>l;
    q.push({a,0,0});
    memo.insert({a,0});
    while(!q.empty()){
        auto [x,y,cur]=q.front();
        q.pop();
        int z=a-x-y;
        if(x==l||y==l||z==l){
            cout<<cur<<'\n';return 0;
        }
        cur++;
        int d=min(x,b-y);
        add(x-d,y+d,cur);
        d=min(y,a-x);
        add(x+d,y-d,cur);
        d=min(x,c-z);
        add(x-d,y,cur);
        d=min(z,a-x);
        add(x+d,y,cur);
        d=min(y,c-z);
        add(x,y-d,cur);
        d=min(z,b-y);
        add(x,y+d,cur);
    }
    cout<<"-1\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms316 KiB
7Elfogadva1/11ms316 KiB
8Elfogadva1/11ms540 KiB
9Elfogadva1/11ms316 KiB
10Elfogadva1/11ms316 KiB
11Elfogadva1/11ms316 KiB
12Elfogadva1/11ms316 KiB
13Elfogadva2/21ms316 KiB
14Elfogadva2/21ms316 KiB
15Elfogadva2/21ms316 KiB
16Elfogadva2/21ms508 KiB
17Elfogadva2/21ms508 KiB
18Elfogadva2/21ms404 KiB
19Elfogadva2/21ms336 KiB
20Elfogadva2/22ms316 KiB
21Elfogadva2/21ms316 KiB
22Elfogadva2/21ms316 KiB
23Elfogadva2/21ms316 KiB
24Elfogadva2/28ms812 KiB
25Elfogadva2/26ms564 KiB
26Elfogadva2/214ms992 KiB
27Elfogadva2/29ms936 KiB