253542026-02-19 13:03:02Leventusz09Társasjátékcpp17Hibás válasz 55/100277ms17572 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 = 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 = 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva4ms4916 KiB
2Elfogadva259ms9924 KiB
subtask20/10
3Elfogadva4ms5108 KiB
4Elfogadva4ms5108 KiB
5Elfogadva6ms4916 KiB
6Elfogadva6ms4916 KiB
7Hibás válasz4ms4932 KiB
subtask315/15
8Elfogadva4ms4916 KiB
9Elfogadva6ms4916 KiB
10Elfogadva101ms7476 KiB
11Elfogadva107ms7372 KiB
12Elfogadva103ms7476 KiB
13Elfogadva214ms9912 KiB
14Elfogadva209ms9968 KiB
15Elfogadva207ms10028 KiB
16Elfogadva218ms10116 KiB
17Elfogadva216ms10036 KiB
18Elfogadva137ms12712 KiB
19Elfogadva200ms10160 KiB
subtask440/40
20Elfogadva4ms4916 KiB
21Elfogadva7ms5100 KiB
22Elfogadva109ms7484 KiB
23Elfogadva160ms8884 KiB
24Elfogadva211ms10036 KiB
25Elfogadva231ms9948 KiB
26Elfogadva219ms10036 KiB
27Elfogadva138ms12828 KiB
28Elfogadva202ms10292 KiB
subtask50/35
29Elfogadva6ms5180 KiB
30Elfogadva256ms10036 KiB
31Elfogadva4ms5108 KiB
32Elfogadva4ms5108 KiB
33Elfogadva6ms4916 KiB
34Elfogadva6ms4916 KiB
35Hibás válasz4ms4932 KiB
36Elfogadva4ms4916 KiB
37Elfogadva6ms4916 KiB
38Elfogadva101ms7476 KiB
39Elfogadva107ms7372 KiB
40Elfogadva103ms7476 KiB
41Elfogadva214ms9912 KiB
42Elfogadva209ms9968 KiB
43Elfogadva207ms10028 KiB
44Elfogadva218ms10116 KiB
45Elfogadva216ms10036 KiB
46Elfogadva137ms12712 KiB
47Elfogadva200ms10160 KiB
48Elfogadva4ms4916 KiB
49Elfogadva7ms5100 KiB
50Elfogadva109ms7484 KiB
51Elfogadva160ms8884 KiB
52Elfogadva211ms10036 KiB
53Elfogadva231ms9948 KiB
54Elfogadva219ms10036 KiB
55Elfogadva138ms12828 KiB
56Elfogadva202ms10292 KiB
57Elfogadva7ms4916 KiB
58Hibás válasz17ms5172 KiB
59Elfogadva16ms5172 KiB
60Elfogadva259ms9980 KiB
61Elfogadva275ms9880 KiB
62Elfogadva277ms9936 KiB
63Elfogadva259ms9920 KiB
64Hibás válasz206ms17572 KiB