253522026-02-19 12:59:05Leventusz09Társasjátékcpp17Hibás válasz 55/100286ms17696 KiB
#include <iostream>
#include <vector>
#define int long long

using namespace std;

struct Edge {
    int to;
    int cost;
};

struct Node {
    bool ty = 0;
    bool szomoru;
    int c = -1, oc = -1;
    vector<Edge> et;
} G[100'000];

void cszs(const int&index){
    if(G[index].ty) return;
    G[index].szomoru = 1;
    for(const Edge&e:G[index].et){
        cszs(e.to);
        if(G[e.to].szomoru) G[index].szomoru = 0;
    }

    G[index].ty = 1;
}

void con(const int& index){
    if(G[index].c >= 0) return;
    if(G[index].et.size() == 0){
        G[index].c = 0;
        G[index].oc = 0;
        return;
    }
    if(G[index].szomoru){
        int mc = 0;
        Edge *mt = &G[index].et[1];
        for(Edge& e: G[index].et){
            con(e.to);
            if(G[e.to].c > mc){
                mt = &e;
                mc = G[e.to].c;
            }
        }
        G[index].c = G[mt->to].oc + mt->cost;
        G[index].oc = mc;
        return;
    }
    int mc = 1'000'000'000;
    Edge *mt = &G[index].et[0];
    for(Edge& e: G[index].et){
        if(!G[e.to].szomoru) continue;
        con(e.to);
        if(G[e.to].oc < mc){
            mt = &e;
            mc = G[e.to].oc;
        }
    }
    G[index].c = mc + mt->cost;
    G[index].oc = G[mt->to].c;
}

signed main(){
    int N, M;
    cin >> N >> M;

    for(int i=0; i<M; i++){
        int U, V, W;
        cin >> U >> V >> W;
        U--; V--;
        Edge e;
        e.to = V;
        e.cost = W;
        G[U].et.push_back(e);
    }

    cszs(0);
    con(0);
    if(G[0].szomoru) cout << "Bob" << endl << G[0].oc << endl;
    else cout << "Alice" << endl << G[0].c << endl;

    /*for(int i=0; i<N; i++){
        cout << i +1<< ": " << G[i].szomoru << "\t" << G[i].c << " " << G[i].oc << endl;
    }*/
   return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva6ms4916 KiB
2Hibás válasz275ms10080 KiB
subtask20/10
3Elfogadva4ms4916 KiB
4Elfogadva4ms4916 KiB
5Elfogadva6ms4916 KiB
6Elfogadva6ms4916 KiB
7Hibás válasz4ms4940 KiB
subtask315/15
8Elfogadva6ms4916 KiB
9Elfogadva4ms4916 KiB
10Elfogadva104ms7476 KiB
11Elfogadva112ms7548 KiB
12Elfogadva112ms7364 KiB
13Elfogadva225ms9916 KiB
14Elfogadva212ms10028 KiB
15Elfogadva230ms10012 KiB
16Elfogadva233ms10064 KiB
17Elfogadva223ms10036 KiB
18Elfogadva141ms12712 KiB
19Elfogadva216ms10144 KiB
subtask440/40
20Elfogadva4ms4916 KiB
21Elfogadva6ms5100 KiB
22Elfogadva108ms7468 KiB
23Elfogadva165ms9012 KiB
24Elfogadva214ms10064 KiB
25Elfogadva225ms10028 KiB
26Elfogadva223ms10036 KiB
27Elfogadva142ms12712 KiB
28Elfogadva207ms10292 KiB
subtask50/35
29Elfogadva6ms5100 KiB
30Hibás válasz268ms10040 KiB
31Elfogadva4ms4916 KiB
32Elfogadva4ms4916 KiB
33Elfogadva6ms4916 KiB
34Elfogadva6ms4916 KiB
35Hibás válasz4ms4940 KiB
36Elfogadva6ms4916 KiB
37Elfogadva4ms4916 KiB
38Elfogadva104ms7476 KiB
39Elfogadva112ms7548 KiB
40Elfogadva112ms7364 KiB
41Elfogadva225ms9916 KiB
42Elfogadva212ms10028 KiB
43Elfogadva230ms10012 KiB
44Elfogadva233ms10064 KiB
45Elfogadva223ms10036 KiB
46Elfogadva141ms12712 KiB
47Elfogadva216ms10144 KiB
48Elfogadva4ms4916 KiB
49Elfogadva6ms5100 KiB
50Elfogadva108ms7468 KiB
51Elfogadva165ms9012 KiB
52Elfogadva214ms10064 KiB
53Elfogadva225ms10028 KiB
54Elfogadva223ms10036 KiB
55Elfogadva142ms12712 KiB
56Elfogadva207ms10292 KiB
57Hibás válasz8ms5100 KiB
58Hibás válasz17ms5172 KiB
59Hibás válasz17ms5244 KiB
60Hibás válasz270ms10120 KiB
61Hibás válasz286ms9992 KiB
62Elfogadva286ms10036 KiB
63Hibás válasz270ms10036 KiB
64Hibás válasz210ms17696 KiB