# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
335927 | 2020-12-14T10:05:10 Z | enerelt14 | Crocodile's Underground City (IOI11_crocodile) | C++14 | 2 ms | 2668 KB |
#include "crocodile.h" #include<bits/stdc++.h> #define pb push_back #define mp make_pair #define ff first #define ss second using namespace std; vector<pair<int, int> >adj[100005]; int path; int a[100005][3]={0}, s[100005]; void dijkstra(int k){ bool vis[100005]; priority_queue<pair<int, int> >pq; pq.push(mp(0, k)); while(!pq.empty()){ int u = pq.top().ss; int cost = -pq.top().ff; pq.pop(); if (s[u]>=2)path=min(cost+a[u][2], path); vis[u] = 1; for(int i = 0; i < adj[u].size(); i++){ int v = adj[u][i].ff; int e = adj[u][i].ss; if(!vis[v]) pq.push(mp(-(cost + e), v)); } while(!pq.empty() && vis[pq.top().ss]) pq.pop(); } } int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { for (int i=0;i<M;i++){ adj[R[i][0]].pb(mp(R[i][1], L[i])); adj[R[i][1]].pb(mp(R[i][0], L[i])); } for (int i=0;i<K;i++){ for (int j=0;j<adj[P[i]].size();j++){ int v=adj[P[i]][j].ff; int cost=adj[P[i]][j].ss; s[v]++; if (s[v]==1)a[v][1]=cost; if (s[v]==2){ a[v][2]=max(a[v][1], cost); a[v][1]=min(a[v][1], cost); } if (s[v]>=3){ if (cost<a[v][1]){ a[v][2]=a[v][1]; a[v][1]=cost; } if (cost>=a[v][1] && cost<a[v][2])a[v][2]=cost; } } } path=1000000001; dijkstra(0); return path; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 2668 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 2668 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 2668 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |