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"
#include "shortcut.h"
using namespace std;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
long long find_shortcut(int n, vector<int> l, vector<int> d, int c)
{
vector<pair<long long, long long>> adj[2*n];
for(int i = 0; i<n; i++)
{
if(d[i]!=0)
{
adj[i].pb(mp(n+i, d[i]));
adj[n+i].pb(mp(i, d[i]));
}
}
for(int i = 0; i<n-1; i++)
{
adj[i].pb(mp(i+1, l[i]));
adj[i+1].pb(mp(i, l[i]));
}
long long res = 1e18;
for(int i = 0; i<n; i++)
{
for(int j = i+1; j<n; j++)
{
adj[i].pb(mp(j, c));
adj[j].pb(mp(i, c));
long long curr = 0;
for(int node = 0; node<2*n; node++)
{
vector<long long> dist(2*n, 1e18);
vector<bool> visited(2*n, false);
priority_queue<pair<long long, long long>> q;
q.push(mp(0, node));
dist[node] = 0;
while(!q.empty())
{
long long a = q.top().se;
q.pop();
if(visited[a])
continue;
visited[a] = true;
for(auto v: adj[a])
{
long long b = v.fi, w = v.se;
if(dist[b]>dist[a] + w)
{
dist[b] = dist[a] + w;
q.push(mp(-dist[b], b));
}
}
}
for(int k = 0; k<2*n; k++)
curr = max(curr, dist[k]);
}
res = min(res, curr);
for(int nb = 0; nb<(int)adj[i].size(); nb++)
{
if(adj[i][nb].fi==j&&adj[i][nb].se==c)
{
adj[i].erase(adj[i].begin() + nb);
break;
}
}
for(int nb = 0; nb<(int)adj[j].size(); nb++)
{
if(adj[j][nb].fi==i&&adj[j][nb].se==c)
{
adj[j].erase(adj[j].begin() + nb);
break;
}
}
}
}
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |