253502026-02-19 12:54:36Leventusz09Társasjátékcpp17Wrong answer 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;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted4ms4148 KiB
2Wrong answer259ms11828 KiB
subtask20/10
3Accepted4ms4148 KiB
4Accepted4ms4148 KiB
5Accepted4ms4148 KiB
6Accepted4ms4148 KiB
7Wrong answer4ms4148 KiB
subtask315/15
8Accepted4ms4340 KiB
9Accepted6ms4236 KiB
10Accepted101ms7140 KiB
11Accepted105ms7224 KiB
12Accepted101ms7188 KiB
13Accepted208ms10284 KiB
14Accepted216ms10292 KiB
15Accepted201ms10292 KiB
16Accepted222ms10484 KiB
17Accepted202ms10288 KiB
18Accepted140ms13480 KiB
19Accepted195ms10464 KiB
subtask440/40
20Accepted4ms4412 KiB
21Accepted4ms4148 KiB
22Accepted103ms7220 KiB
23Accepted173ms9312 KiB
24Accepted223ms10476 KiB
25Accepted204ms10292 KiB
26Accepted219ms10296 KiB
27Accepted142ms13484 KiB
28Accepted201ms10376 KiB
subtask50/35
29Accepted4ms4148 KiB
30Wrong answer268ms7656 KiB
31Accepted4ms4148 KiB
32Accepted4ms4148 KiB
33Accepted4ms4148 KiB
34Accepted4ms4148 KiB
35Wrong answer4ms4148 KiB
36Accepted4ms4340 KiB
37Accepted6ms4236 KiB
38Accepted101ms7140 KiB
39Accepted105ms7224 KiB
40Accepted101ms7188 KiB
41Accepted208ms10284 KiB
42Accepted216ms10292 KiB
43Accepted201ms10292 KiB
44Accepted222ms10484 KiB
45Accepted202ms10288 KiB
46Accepted140ms13480 KiB
47Accepted195ms10464 KiB
48Accepted4ms4412 KiB
49Accepted4ms4148 KiB
50Accepted103ms7220 KiB
51Accepted173ms9312 KiB
52Accepted223ms10476 KiB
53Accepted204ms10292 KiB
54Accepted219ms10296 KiB
55Accepted142ms13484 KiB
56Accepted201ms10376 KiB
57Wrong answer6ms4332 KiB
58Wrong answer16ms4660 KiB
59Wrong answer17ms4552 KiB
60Wrong answer254ms11960 KiB
61Wrong answer272ms11900 KiB
62Accepted256ms11828 KiB
63Wrong answer263ms12048 KiB
64Wrong answer210ms19108 KiB