# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
845130 | elotelo966 | Cyberland (APIO23_cyberland) | C++17 | 707 ms | 17736 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
//#define int long long
//#define mid (start+end)/2
//#define OYY 10000
//#define faster ios_base::sync_with_stdio(false);cin.tie(NULL);
const long double OYY=1e112;
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){
int n=N;
int m=M;
int k=K;
vector <vector<pair<long long int,long long int>>> v;
v.assign(n,{});
k=min(k,50);
for(int i=0;i<m;i++){
int a=x[i];
int b=y[i];
int co=c[i];
v[a].push_back({b,co});
v[b].push_back({a,co});
}
vector <long double> uza(n,OYY);
uza[0]=0;
for(int ip=0;ip<=k+2;ip++){
set <pair<long double,int>> st;
for(int i=0;i<n;i++){
st.insert({uza[i],i});
}
while(!st.empty()){
int node=st.begin()->second;
st.erase(st.begin());
if(node==H)continue;
for(int i=0;i<v[node].size();i++){
int go=v[node][i].first;
int cost=v[node][i].second;
if(uza[go]>uza[node]+cost){
st.erase({uza[go],go});
uza[go]=uza[node]+cost;
st.insert({uza[go],go});
}
}
}
auto ne=uza;
for(int j=0;j<n;j++){
if(uza[j]<OYY){
if(arr[j]==0)ne[j]=0;
}
else if(arr[j]==2 && ip>1 && ip!=k+2){
for(int i=0;i<v[j].size();i++){
int go=v[j][i].first;
int cost=v[j][i].second;
ne[go]=min(ne[go],uza[j]/2+(long double)cost);
}
}
}
uza=ne;
}
if(uza[H]<OYY){
return uza[H];
}
return -1;
}
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... |