253602026-02-19 13:50:04Leventusz09Társasjátékcpp17Wrong answer 55/100273ms17548 KiB
#include <iostream>
#include <limits.h>
#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 = -1;
        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 = LLONG_MAX;
    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
1Accepted4ms4916 KiB
2Accepted252ms10036 KiB
subtask20/10
3Accepted4ms4920 KiB
4Accepted4ms4916 KiB
5Accepted6ms5108 KiB
6Accepted6ms4916 KiB
7Wrong answer4ms4916 KiB
subtask315/15
8Accepted4ms4916 KiB
9Accepted6ms4916 KiB
10Accepted107ms7616 KiB
11Accepted101ms7456 KiB
12Accepted103ms7448 KiB
13Accepted216ms10036 KiB
14Accepted222ms9956 KiB
15Accepted223ms10060 KiB
16Accepted204ms9948 KiB
17Accepted204ms10036 KiB
18Accepted140ms12708 KiB
19Accepted200ms10292 KiB
subtask440/40
20Accepted4ms5108 KiB
21Accepted7ms4916 KiB
22Accepted104ms7476 KiB
23Accepted170ms9012 KiB
24Accepted223ms9972 KiB
25Accepted209ms10076 KiB
26Accepted209ms10036 KiB
27Accepted142ms12832 KiB
28Accepted204ms10292 KiB
subtask50/35
29Accepted4ms4916 KiB
30Accepted268ms10036 KiB
31Accepted4ms4920 KiB
32Accepted4ms4916 KiB
33Accepted6ms5108 KiB
34Accepted6ms4916 KiB
35Wrong answer4ms4916 KiB
36Accepted4ms4916 KiB
37Accepted6ms4916 KiB
38Accepted107ms7616 KiB
39Accepted101ms7456 KiB
40Accepted103ms7448 KiB
41Accepted216ms10036 KiB
42Accepted222ms9956 KiB
43Accepted223ms10060 KiB
44Accepted204ms9948 KiB
45Accepted204ms10036 KiB
46Accepted140ms12708 KiB
47Accepted200ms10292 KiB
48Accepted4ms5108 KiB
49Accepted7ms4916 KiB
50Accepted104ms7476 KiB
51Accepted170ms9012 KiB
52Accepted223ms9972 KiB
53Accepted209ms10076 KiB
54Accepted209ms10036 KiB
55Accepted142ms12832 KiB
56Accepted204ms10292 KiB
57Accepted7ms5108 KiB
58Wrong answer17ms5172 KiB
59Accepted16ms5224 KiB
60Accepted257ms10020 KiB
61Accepted273ms10108 KiB
62Accepted261ms10104 KiB
63Accepted268ms9904 KiB
64Wrong answer204ms17548 KiB