cf 707B - Bakery

    xiaoxiao2021-03-25  74

    点击打开链接

    水题,跑一边记录最短的就行了,

    wa一次, 忽略两个都不能建的情况。

    #include <stdio.h> #include <string.h> #include <iostream> #include <map> #include <math.h> #define LL long long using namespace std; const int maxn=1e5+10; const int mod=1e9+7; int n,m,k,x,y,len,cnt=0; struct node{ int w,to,val; }edge[maxn*2]; int v[maxn],a[maxn]; int main(){ scanf("%d %d %d",&k,&n,&m); for(int i=0;i<n;++i){ scanf("%d %d %d",&edge[i].w,&edge[i].to,&edge[i].val); } int mina=1e9+1; for(int i=0;i<m;++i){ scanf("%d",&a[i]); v[a[i]]=1; } for(int i=0;i<n;++i) if(v[edge[i].w]^v[edge[i].to]&&edge[i].val<mina) mina=edge[i].val; if(mina==1e9+1) mina=-1; printf("%d\n",mina); return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-35420.html

    最新回复(0)