Submission #403415

#TimeUsernameProblemLanguageResultExecution timeMemory
403415WasrekSwapping Cities (APIO20_swap)C++14
0 / 100
111 ms11608 KiB
#include<bits/stdc++.h> #include "swap.h" // #include"grader.cpp" #include <vector> #define SIZE 100010 #define MAX 2000000000 using namespace std; struct A{ int u,w; }; int sub2=1; A m1={MAX,MAX},m2={MAX,MAX},m3={MAX,MAX}; vector<A> g[SIZE]; void init(int N, int M, std::vector<int> U, std::vector<int> V, std::vector<int> W) { for(int i=0;i<M;i++){ g[U[i]].push_back({V[i],W[i]}); g[V[i]].push_back({U[i],W[i]}); // if(U[i]!=0) sub2=0; if(W[i]<m1.w){ m3=m2,m2=m1,m1={V[i],W[i]}; }else if(W[i]<m2.w){ m3=m2,m2={V[i],W[i]}; }else if(W[i]<m3.w){ m3={V[i],W[i]}; } } // printf("%d %d\n%d %d\n%d %d\n",m1.u,m1.w,m2.u,m2.w,m3.u,m3.w); return ; } int getMinimumFuelCapacity(int X, int Y) { //min path ที่มี node อยู่ระหว่าง path //หา min ถนนที่เชื่อมกับโหนดตรงกลาง //เทียบ min กับ path อื่นๆ ไปได้ (เชื่อมตรงเลยก็ได้) // if(sub2){ if(X==0 || Y==0 || m3.w==MAX) return -1; if(X!=m1.u && Y!=m1.u){ return max(g[X][0].w,max(g[Y][0].w,m1.w)); }else if(X!=m2.u && Y!=m2.u){ return max(g[X][0].w,max(g[Y][0].w,m2.w)); }else if(X!=m3.u && Y!=m3.u){ return max(g[X][0].w,max(g[Y][0].w,m3.w)); } // } return 0; }
#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...