Submission #47348

#TimeUsernameProblemLanguageResultExecution timeMemory
47348dqhungdlSightseeing (NOI14_sightseeing)C++17
15 / 25
3573 ms160336 KiB
#include <bits/stdc++.h>
using namespace std;

typedef pair<int,int> ii;
int n,m,T,d[500005];
vector<ii> g[500005];
set<ii> s;

int main()
{
    ios_base::sync_with_stdio(false);
    //freopen("TEST.INP","r",stdin);
    cin>>n>>m>>T;
    int u,v,w;
    while(m--)
    {
        cin>>u>>v>>w;
        g[u].push_back(ii(v,w));
        g[v].push_back(ii(u,w));
    }
    for(int i=2;i<=n;i++)
        d[i]=-1;
    d[1]=1e9;
    s.insert(ii(1e9,1));
    while(s.size()>0)
    {
        int u=(*s.rbegin()).second;
        s.erase(s.find(*s.rbegin()));
        for(int i=0;i<g[u].size();i++)
        {
            int v=g[u][i].first;
            int w=g[u][i].second;
            if(d[v]<min(d[u],w))
            {
                if(d[v]!=-1)
                    s.erase(s.find(ii(d[v],v)));
                d[v]=min(d[u],w);
                s.insert(ii(d[v],v));
            }
        }
    }
    while(T--)
    {
        cin>>u;
        cout<<d[u]<<"\n";
    }
}

Compilation message (stderr)

sightseeing.cpp: In function 'int main()':
sightseeing.cpp:29:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<g[u].size();i++)
                     ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...