Submission #615546

#TimeUsernameProblemLanguageResultExecution timeMemory
615546nohaxjustsofloCrocodile's Underground City (IOI11_crocodile)C++17
0 / 100
822 ms262144 KiB
#include <bits/stdc++.h> #include <iostream> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; typedef tree<ll,null_type,less_equal<ll>,rb_tree_tag,tree_order_statistics_node_update> order_set; mt19937 mt_rand(chrono::high_resolution_clock::now().time_since_epoch().count()); //uniform_int_distribution<int> gen; ///(min, max) //int random() {return gen(mt_rand);} const int mxN=2e5+5; const int mod=998244353; const int mxlogN=40; const int mxK=26; const int inf=2e9; const int K=600; struct edge { int u,v,w; int other(int i) { return i^u^v; } }es[mxN]; vector<int> adj[mxN]; int vis[mxN]; //#include "crocodile.h" int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { for(int i=0; i<M; i++) { int u=R[i][0],v=R[i][1],w=L[i]; es[i]={u,v,w}; adj[u].push_back(i); adj[v].push_back(i); } priority_queue<pair<ll,int>> q; for(int i=0; i<K; i++) { q.push({0,P[i]}); vis[P[i]]=1; } while(q.size()) { auto par=q.top(); q.pop(); int i=par.second; ll w=-par.first; //cout << "tebra " << i << " " << w << "\n"; if(!vis[i]) { vis[i]++; continue; } if(!i) return w; for(int e:adj[i]) { int j=es[e].other(i); //cout << "dodjem\n"; if(vis[i]==2) continue; //cout << "dodjem2\n"; ll d=w+es[e].w; q.push({-d,j}); } } //cout << "ovde\n"; return -1; } /* int main() { int n,m,k; cin >> n >> m >> k; int r[m][2], l[m], p[n]; for(int i=0; i<m; i++) cin >> r[i][0] >> r[i][1] >> l[i]; for(int i=0; i<k; i++) cin >> p[i]; cout << travel_plan(n,m,r,l,k,p) << "\n"; } */ /* 5 4 3 0 1 2 0 2 3 3 2 1 2 4 4 1 3 4 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...