제출 #565674

#제출 시각아이디문제언어결과실행 시간메모리
565674AbdullahMWEvacuation plan (IZhO18_plan)C++14
0 / 100
161 ms21396 KiB
#include <bits/stdc++.h>

#define all(vec) vec.begin(), vec.end()
#define ll long long
#define db double
#define pb push_back
#define pf push_front
#define newl "\n"
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define f first
#define s second
#define MOD 1000000007

using namespace std;

#pragma GCC diagnostic ignored "-Wunused-result"
void setIO(string name = "") {
    ios_base::sync_with_stdio(0); cin.tie(0);
    cout << fixed << setprecision(15);
    if (name.size()) {
        freopen((name+".in").c_str(), "r", stdin);
        freopen((name+".out").c_str(), "w", stdout);
    }
}

vector <pair <ll, ll>> gr[100005];
unordered_map <ll, ll> fin, dist;
unordered_map <ll, bool> nuc, vis;


int main()
{
    fast
    //setIO("");
    
    //freopen("filename.in", "r", stdin);
    //freopen("filename.out", "w", stdout);
    ll n, m; cin >> n >> m;
    for (ll i = 1; i <= m; i++)
    {
        ll x, y, len;
        
        cin >> x >> y >> len;
        gr[x].pb({len, y});
        gr[y].pb({len, x});
    }
    
    ll k; cin >> k;
    for (ll i = 1; i <= k; i++)
    {
        ll idx; cin >> idx;
        nuc[idx] = true;
    }
    
    for (ll i = 1; i <= n; i++) 
    {
        if (nuc[i]) fin[i] = 0;
        else
        {
            fin[i] = 1e18;
            for (auto v : gr[i])
            {
                if (nuc[v.s]) fin[i] = min(fin[i], v.f);
            }
        }
    }
    
    //cout << newl;
    ll q; cin >> q;
    while (q--)
    {
        ll x, y; cin >> x >> y;
        cout << min(fin[x], fin[y]) << newl;
    }
}
    
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...