253522026-02-19 12:59:05Leventusz09Társasjátékcpp17Wrong answer 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;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted6ms4916 KiB
2Wrong answer275ms10080 KiB
subtask20/10
3Accepted4ms4916 KiB
4Accepted4ms4916 KiB
5Accepted6ms4916 KiB
6Accepted6ms4916 KiB
7Wrong answer4ms4940 KiB
subtask315/15
8Accepted6ms4916 KiB
9Accepted4ms4916 KiB
10Accepted104ms7476 KiB
11Accepted112ms7548 KiB
12Accepted112ms7364 KiB
13Accepted225ms9916 KiB
14Accepted212ms10028 KiB
15Accepted230ms10012 KiB
16Accepted233ms10064 KiB
17Accepted223ms10036 KiB
18Accepted141ms12712 KiB
19Accepted216ms10144 KiB
subtask440/40
20Accepted4ms4916 KiB
21Accepted6ms5100 KiB
22Accepted108ms7468 KiB
23Accepted165ms9012 KiB
24Accepted214ms10064 KiB
25Accepted225ms10028 KiB
26Accepted223ms10036 KiB
27Accepted142ms12712 KiB
28Accepted207ms10292 KiB
subtask50/35
29Accepted6ms5100 KiB
30Wrong answer268ms10040 KiB
31Accepted4ms4916 KiB
32Accepted4ms4916 KiB
33Accepted6ms4916 KiB
34Accepted6ms4916 KiB
35Wrong answer4ms4940 KiB
36Accepted6ms4916 KiB
37Accepted4ms4916 KiB
38Accepted104ms7476 KiB
39Accepted112ms7548 KiB
40Accepted112ms7364 KiB
41Accepted225ms9916 KiB
42Accepted212ms10028 KiB
43Accepted230ms10012 KiB
44Accepted233ms10064 KiB
45Accepted223ms10036 KiB
46Accepted141ms12712 KiB
47Accepted216ms10144 KiB
48Accepted4ms4916 KiB
49Accepted6ms5100 KiB
50Accepted108ms7468 KiB
51Accepted165ms9012 KiB
52Accepted214ms10064 KiB
53Accepted225ms10028 KiB
54Accepted223ms10036 KiB
55Accepted142ms12712 KiB
56Accepted207ms10292 KiB
57Wrong answer8ms5100 KiB
58Wrong answer17ms5172 KiB
59Wrong answer17ms5244 KiB
60Wrong answer270ms10120 KiB
61Wrong answer286ms9992 KiB
62Accepted286ms10036 KiB
63Wrong answer270ms10036 KiB
64Wrong answer210ms17696 KiB