Submission #952218

# Submission time Handle Problem Language Result Execution time Memory
952218 2024-03-23T09:56:23 Z emad234 Crocodile's Underground City (IOI11_crocodile) C++17
89 / 100
397 ms 83652 KB
#include "crocodile.h"
#include <bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define pii pair<ll, ll>
const ll mod = 1e9 + 7;
const ll mxN = 1e6 + 5;
using namespace std;
vector<vector<pii>> v;
ll dist[mxN], mn[mxN];
int travel_plan(int N, int M, int R[][2], int L[], int K, int P[])
{
  v.clear();
  v.resize(N + 3);
  for (ll i = 0; i < N; i++)
  {
    dist[i] = 1e18 + 5;
    mn[i] = 1e18 + 5;
  }
  for (ll i = 0; i < M; i++)
  {
    v[R[i][1]].push_back({R[i][0], L[i]});
    v[R[i][0]].push_back({R[i][1], L[i]});
  }
  priority_queue<pii, vector<pii>, greater<pii>> q;
  for (ll i = 0; i < K; i++)
  {
    mn[P[i]] = 0;
    dist[P[i]] = 0;
    q.push({0, P[i]});
  }
  while (q.size())
  {
    auto u = q.top();
    q.pop();
    if (dist[u.S] < u.F)
      continue;
    for (auto x : v[u.S])
    {
      if (dist[x.F] > x.S + u.F && mn[x.F] == 1e18 + 5)
      {
        mn[x.F] = x.S + u.F;
      }
      else if (dist[x.F] > x.S + u.F && mn[x.F] != 1e18 + 5)
      {
        ll Mn = mn[x.F];
        mn[x.F] = min(x.S + u.F, Mn);
        dist[x.F] = max(x.S + u.F, Mn);
        q.push({dist[x.F], x.F});
      }
    }
  }
  return dist[0] == 1e18 + 5 ? -1 : dist[0];
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 2 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 2 ms 6492 KB Output is correct
5 Correct 2 ms 6492 KB Output is correct
6 Correct 2 ms 6576 KB Output is correct
7 Correct 1 ms 6488 KB Output is correct
8 Correct 2 ms 6492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 2 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 2 ms 6492 KB Output is correct
5 Correct 2 ms 6492 KB Output is correct
6 Correct 2 ms 6576 KB Output is correct
7 Correct 1 ms 6488 KB Output is correct
8 Correct 2 ms 6492 KB Output is correct
9 Correct 2 ms 6748 KB Output is correct
10 Correct 2 ms 6492 KB Output is correct
11 Correct 2 ms 6576 KB Output is correct
12 Correct 4 ms 7004 KB Output is correct
13 Correct 3 ms 7104 KB Output is correct
14 Correct 1 ms 6492 KB Output is correct
15 Correct 1 ms 6492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 2 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 2 ms 6492 KB Output is correct
5 Correct 2 ms 6492 KB Output is correct
6 Correct 2 ms 6576 KB Output is correct
7 Correct 1 ms 6488 KB Output is correct
8 Correct 2 ms 6492 KB Output is correct
9 Correct 2 ms 6748 KB Output is correct
10 Correct 2 ms 6492 KB Output is correct
11 Correct 2 ms 6576 KB Output is correct
12 Correct 4 ms 7004 KB Output is correct
13 Correct 3 ms 7104 KB Output is correct
14 Correct 1 ms 6492 KB Output is correct
15 Correct 1 ms 6492 KB Output is correct
16 Correct 323 ms 73760 KB Output is correct
17 Correct 56 ms 25016 KB Output is correct
18 Correct 78 ms 27476 KB Output is correct
19 Correct 397 ms 83652 KB Output is correct
20 Correct 226 ms 59576 KB Output is correct
21 Correct 28 ms 15900 KB Output is correct
22 Incorrect 237 ms 57940 KB Output isn't correct
23 Halted 0 ms 0 KB -