记录编号 | 157804 | 评测结果 | AAAAAAAAAA | ||
---|---|---|---|---|---|
题目名称 | [USACO Jan15] 牛的路线2 | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | C++ | 运行时间 | 0.062 s | ||
提交时间 | 2015-04-10 15:58:13 | 内存使用 | 0.39 MiB | ||
#include<cstdio> #include<iostream> using namespace std; int a,b,m,ans=999999,e,k,n,t[10001],q[10001],ma=0,mi=999999; int main() { freopen("cowrouteb.in","r",stdin); freopen("cowrouteb.out","w",stdout); scanf("%d%d%d",&a,&b,&n); for(int i=1;i<=10000;i++) { t[i]=999999; q[i]=999999; } t[a]=0; q[b]=0; for(int i=1;i<=n;i++) { int c,d,in[510],now=0; scanf("%d%d",&c,&d); for(int j=1;j<=d;j++) { scanf("%d",&in[j]); if(in[j]>ma) ma=in[j]; if(in[j]<mi) mi=in[j]; if(in[j]==b) { for(int k=1;k<=j-1;k++) { if(c<q[in[k]]) q[in[k]]=c; } } if(now==1) { if(c<t[in[j]]) t[in[j]]=c; } if(in[j]==a) { now=1; } } } for(int i=mi;i<=ma;i++) { if(t[i]+q[i]<ans) ans=t[i]+q[i]; } if(ans!=999999) cout<<ans; else cout<<"-1"; return 0; }