제출 #944482

#제출 시각아이디문제언어결과실행 시간메모리
944482rahidilbayramli악어의 지하 도시 (IOI11_crocodile)C++17
100 / 100
456 ms78312 KiB
#include<bits/stdc++.h> #include"crocodile.h" #include<ext/pb_ds/assoc_container.hpp> #include<ext/pb_ds/tree_policy.hpp> #define ll long long #define ld long double #define vl vector<ll> #define vi vector<int> #define all(v) v.begin(), v.end() #define pb push_back #define pii pair<int, int> #define pll pair<ll, ll> #define f first #define s second using namespace std; using namespace __gnu_pbds; typedef tree<ll, null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; const int sz = 1e5+5; vector<pii>g[sz]; int vis[sz], e[sz], k = 0, i; ll dist[sz], maxx = 0; priority_queue<pll>pq; void dijkstra() { while(!pq.empty()) { ll x = pq.top().f; ll a = pq.top().s; pq.pop(); vis[a]++; if(vis[a] == 2){ if(a == 0) { maxx = -x; return; } for(auto [u, w] : g[a]) pq.push({x - w, u}); } } } int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { maxx = 0; for(i = 0; i < M; i++) { g[R[i][0]].pb({R[i][1], L[i]}); g[R[i][1]].pb({R[i][0], L[i]}); } for(i = 0; i < K; i++) { vis[P[i]] = 1; pq.push({0, P[i]}); } dijkstra(); return maxx; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...