# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1202556 | Francisco_Martin | Cyberland (APIO23_cyberland) | C++20 | 892 ms | 2162688 KiB |
#include "cyberland.h"
#include <bits/stdc++.h>
using namespace std;
#define debug(x) cerr<<#x" = "<<x<<"\n";
#define debugv(x) cerr<<#x" = [ "; for(auto v:x) cerr << v << ", "; cerr<<"]\n";
using ll=long long;
using ld=long double;
const ld INF=1e18;
double solve(int N,int M,int K,int H,vector<int> x,vector<int> y,vector<int> c,vector<int> arr){
vector<vector<ld>> A(K+1,vector<ld>(N,INF));
vector<pair<ld,ld>> g[N]; queue<ll> q; vector<bool> vis(N,false);
priority_queue<array<ld,3>> pq; ld ans=INF;
for(int i=0; i<M; i++){
g[x[i]].push_back({y[i],c[i]});
g[y[i]].push_back({x[i],c[i]});
}
q.push(0);
while(!q.empty()){
ll v=q.front(); q.pop();
vis[v]=true;
for(auto [u,w]:g[v]){
if(vis[u]) continue;
q.push(u);
}
}
if(!vis[H]) return -1;
for(int i=0; i<N; i++) if(i==0 || (arr[i]==0 && vis[i])) pq.push({0,K,i});
while(!pq.empty()){
auto [w,k,v]=pq.top(); pq.pop();
if(A[k][v]!=INF || v==H) continue;
for(auto [u,w2]:g[(ll)v]){
if(A[k][u]>-w+w2){
A[k][u]=-w+w2;
pq.push({w-w2,k,u});
}
if(k>0 && arr[u]==2 && A[k-1][u]>(-w+w2)/2){
A[k-1][u]=(-w+w2)/2;
pq.push({(w-w2)/2,k-1,u});
}
}
}
for(int i=0; i<=K; i++) ans=min(ans,A[i][H]);
return ans;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |