# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
282038 | mat_v | Crocodile's Underground City (IOI11_crocodile) | C++14 | 632 ms | 105832 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 "crocodile.h"
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/rope>
#define ff(i,a,b) for(int (i) = (a); (i) <= (b); ++(i))
#define fb(i,a,b) for(int (i) = (a); (i) >= (b); --(i))
#define mod 998244353
#define xx first
#define yy second
#define all(a) (a).begin(), (a).end()
#define pb push_back
#define ll long long
#define pii pair<int,ll>
using namespace std;
using namespace __gnu_pbds;
typedef tree<int, null_type, less<int>,rb_tree_tag, tree_order_statistics_node_update> ordered_set;/// find_by_order(x)(x+1th) , order_of_key() (strictly less)
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
int n,m;
vector<pii> graf[1000005];
pii dist[1000005];
priority_queue<pii> pq;
void djikstra(){
while(!pq.empty()){
pii sta = pq.top();
ll duz = -sta.xx;
int koji = sta.yy;
if(duz != dist[koji].yy){
pq.pop();
continue;
}
//cout << koji << " " << duz << "\n";
//cout << dist[koji].xx << " " << dist[koji].yy << "\n";
pq.pop();
for(auto c:graf[koji]){
ll tmpduz = duz + c.yy;
pii tr = dist[c.xx];
pii novi = tr;
if(tmpduz < novi.xx)novi = {tmpduz, novi.xx};
else if(tmpduz < novi.yy)novi = {novi.xx, tmpduz};
if(novi.yy < tr.yy){
dist[c.xx] = novi;
pq.push({-novi.yy, c.xx});
}
dist[c.xx] = novi;
}
}
}
int travel_plan(int N, int M, int R[][2], int L[], int K, int P[])
{
n = N; m = M;
ff(j,0,m - 1){
int a = R[j][0];
int b = R[j][1];
a++; b++;
ll c = L[j];
graf[a].pb({b,c});
graf[b].pb({a,c});
}
ll maks = 1e7;
maks *= maks;
ff(i,1,n)dist[i] = {maks, maks};
ff(i,0,K - 1){
int x = P[i];
x++;
pq.push({0,x});
dist[x] = {0,0};
}
djikstra();
return dist[1].yy;
}
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... |