253502026-02-19 12:54:36Leventusz09Társasjátékcpp17Hibás válasz 55/100272ms19108 KiB
#include <iostream>
#include <vector>

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
1Elfogadva4ms4148 KiB
2Hibás válasz259ms11828 KiB
subtask20/10
3Elfogadva4ms4148 KiB
4Elfogadva4ms4148 KiB
5Elfogadva4ms4148 KiB
6Elfogadva4ms4148 KiB
7Hibás válasz4ms4148 KiB
subtask315/15
8Elfogadva4ms4340 KiB
9Elfogadva6ms4236 KiB
10Elfogadva101ms7140 KiB
11Elfogadva105ms7224 KiB
12Elfogadva101ms7188 KiB
13Elfogadva208ms10284 KiB
14Elfogadva216ms10292 KiB
15Elfogadva201ms10292 KiB
16Elfogadva222ms10484 KiB
17Elfogadva202ms10288 KiB
18Elfogadva140ms13480 KiB
19Elfogadva195ms10464 KiB
subtask440/40
20Elfogadva4ms4412 KiB
21Elfogadva4ms4148 KiB
22Elfogadva103ms7220 KiB
23Elfogadva173ms9312 KiB
24Elfogadva223ms10476 KiB
25Elfogadva204ms10292 KiB
26Elfogadva219ms10296 KiB
27Elfogadva142ms13484 KiB
28Elfogadva201ms10376 KiB
subtask50/35
29Elfogadva4ms4148 KiB
30Hibás válasz268ms7656 KiB
31Elfogadva4ms4148 KiB
32Elfogadva4ms4148 KiB
33Elfogadva4ms4148 KiB
34Elfogadva4ms4148 KiB
35Hibás válasz4ms4148 KiB
36Elfogadva4ms4340 KiB
37Elfogadva6ms4236 KiB
38Elfogadva101ms7140 KiB
39Elfogadva105ms7224 KiB
40Elfogadva101ms7188 KiB
41Elfogadva208ms10284 KiB
42Elfogadva216ms10292 KiB
43Elfogadva201ms10292 KiB
44Elfogadva222ms10484 KiB
45Elfogadva202ms10288 KiB
46Elfogadva140ms13480 KiB
47Elfogadva195ms10464 KiB
48Elfogadva4ms4412 KiB
49Elfogadva4ms4148 KiB
50Elfogadva103ms7220 KiB
51Elfogadva173ms9312 KiB
52Elfogadva223ms10476 KiB
53Elfogadva204ms10292 KiB
54Elfogadva219ms10296 KiB
55Elfogadva142ms13484 KiB
56Elfogadva201ms10376 KiB
57Hibás válasz6ms4332 KiB
58Hibás válasz16ms4660 KiB
59Hibás válasz17ms4552 KiB
60Hibás válasz254ms11960 KiB
61Hibás válasz272ms11900 KiB
62Elfogadva256ms11828 KiB
63Hibás válasz263ms12048 KiB
64Hibás válasz210ms19108 KiB