# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
583517 | AngusWong | Robot (JOI21_ho_t4) | C++17 | 501 ms | 35856 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 <bits/stdc++.h>
#define ll long long
#define pll pair<ll, ll>
#define f first
#define s second
using namespace std;
ll n, m, x, y, c, p, dist[100001];
vector<pll> v[100001];
map<ll, ll> cnt[100001];
priority_queue<pair<pll, ll>, vector<pair<pll, ll> >, greater<pair<pll, ll> > > pq;
void dij(ll st){
for (int i=1; i<=n; i++) dist[i]=1e18;
dist[st]=0;
pq.push({{0, st}, 0});
while (!pq.empty()){
pll p=pq.top().f;
ll color=pq.top().s;
pq.pop();
if (dist[p.s]!=p.f) continue;
if (color) cnt[p.s][color]--;
for (pll i: v[p.s]){
if (cnt[p.s][i.s]==1){
if (dist[i.f]>p.f){
dist[i.f]=p.f;
pq.push({{p.f, i.f}, 0});
}
}else{
if (dist[i.f]>p.f+1){
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |