Submission #751303

# Submission time Handle Problem Language Result Execution time Memory
751303 2023-05-31T11:13:08 Z coding_snorlax Cyberland (APIO23_cyberland) C++17
0 / 100
141 ms 10572 KB
#include<bits/stdc++.h>
#include "cyberland.h"
using namespace std;
using ll = long long int;
vector<ll> change_G[100002];
vector<pair<ll,ll>> G[100002];
set<pair<ll,ll>> now_node;
ll dis[100002];
int vis[100002]={0};
int possible[100002]={0};
vector<int> sp_place;
void init(int n){
    for(int i=0;i<=n;i++){
        vis[i]=0;possible[i]=0;
        dis[i]=100000000000000;G[i].clear();
    }
}
void dfs(int node){
    possible[node]=1;
    for(int i:change_G[node]){
        if(!possible[i]) dfs(i);
    }
}
double solve(int N,int M,int K,int H, vector<int> x,vector<int> y,vector<int> c,vector<int> arr){
    int n=N,m=M;
    init(n);
    for(int i=0;i<=n;i++){
        if(!arr[i]) sp_place.push_back(i);
    }
    sp_place.push_back(0);
    for(int i=0;i<m;i++){
        if(x[i]==H || y[i]==H) continue;
        change_G[x[i]].push_back(y[i]);
        change_G[y[i]].push_back(x[i]);
    }
    dfs(0);
    possible[H]=1;
    for(int i=0;i<m;i++){
        if(possible[x[i]] && possible[y[i]]){
            G[x[i]].push_back(make_pair(c[i],y[i]));
            G[y[i]].push_back(make_pair(c[i],x[i]));
        }
    }
    dis[H]=0;
    vis[H]=1;
    for(auto i:G[H]){
        dis[i.second]=dis[H]+i.first;
        now_node.insert(i);
    }
    dis[H]=0;
    while((int)now_node.size()){
        auto it = *now_node.begin();
        if(!vis[it.second]){
            vis[it.second]=1;
            for(auto now:G[it.second]){
                if(dis[now.second]>dis[it.second]+now.first){
                    dis[now.second]=dis[it.second]+now.first;
                    now_node.insert(make_pair(dis[now.second],now.second));
                }
            }
        }
        now_node.erase(it);
    }
    long long int answer = 100000000000000;
    for(int i:sp_place) answer = min(answer,dis[i]);
    if(answer==100000000000000) return -1;
    return answer;
}
# Verdict Execution time Memory Grader output
1 Incorrect 141 ms 5304 KB Wrong Answer.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 29 ms 6160 KB Wrong Answer.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 37 ms 6536 KB Wrong Answer.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 31 ms 10572 KB Wrong Answer.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 29 ms 6436 KB Wrong Answer.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 33 ms 6728 KB Wrong Answer.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 37 ms 6512 KB Wrong Answer.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 35 ms 6544 KB Wrong Answer.
2 Halted 0 ms 0 KB -