Submission #1273656

#TimeUsernameProblemLanguageResultExecution timeMemory
1273656vtnoo사이버랜드 (APIO23_cyberland)C++20
0 / 100
19 ms7472 KiB
#include "cyberland.h"

#include <bits/stdc++.h>
using namespace std;

const int MAXN=100000;
vector<vector<pair<int,double>>> adj;
bool alc[MAXN], vis[MAXN];

void dfs(int u, const int& ban){
    alc[u]=true;
    for(auto [v,t]:adj[u]){
        if(v==ban)continue;
        if(!alc[v]){
            dfs(v, ban);
        }
    }
}

double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) {
    memset(alc, 0, sizeof(alc));
    memset(vis, 0, sizeof(vis));
    adj.clear();
    adj.resize(N);
    for(int i=0;i<M;i++){
        adj[x[i]].push_back({y[i], c[i]});
        adj[y[i]].push_back({x[i], c[i]});
    }
    dfs(0,H);
    set<pair<double,int>> q;
    q.insert({0,H});
    memset(vis, 0, sizeof(vis));
    vector<double> dist(N, 1e18);
    while(!q.empty()){
        auto [d,u]=*q.begin();
        q.erase(q.begin());
        vis[u]=true;
        if(arr[u]==0){
            return d;
            break;
        }
        for(auto [v,t]:adj[u]){
            if(alc[v]&&!vis[v]){
                if(arr[v]==2&&K){
                    q.insert({(d+t)/2,v});
                    K--;
                }else q.insert({d+t, v});
            }
        }
    }
}

Compilation message (stderr)

cyberland.cpp: In function 'double solve(int, int, int, int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
cyberland.cpp:51:1: warning: control reaches end of non-void function [-Wreturn-type]
   51 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...