记录编号 203628 评测结果 WWWWW
题目名称 平凡的皮卡丘 最终得分 0
用户昵称 Gravatarfyb 是否通过 未通过
代码语言 C++ 运行时间 0.161 s
提交时间 2015-11-03 13:28:43 内存使用 0.80 MiB
显示代码纯文本
  1. #include <cstdio>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. #define NMAX 40000
  7. #define INF 50000000
  8.  
  9. struct edge{
  10. int u,v,w;
  11. };
  12.  
  13. int ans=INF;
  14. vector<edge> g[NMAX+1];
  15. bool pa[NMAX+1];
  16.  
  17. void dfs(int ind,int d,int p){
  18. int i;
  19.  
  20. if(pa[ind]&&ind==1&&d<ans)ans=d;
  21. if(pa[ind])return;
  22. pa[ind]=true;
  23. for(i=0;i<g[ind].size();i++){
  24. if(g[ind][i].v==p)continue;
  25. dfs(g[ind][i].v,d+g[ind][i].w,ind);
  26. }
  27. // pa[ind]=false;
  28. }
  29.  
  30. int main(){
  31. int n,m;
  32. int tu,tv,tw,trw;
  33. int i;
  34.  
  35. freopen("both.in","r",stdin);
  36. freopen("both.out","w",stdout);
  37.  
  38. scanf("%d%d",&n,&m);
  39. for(i=0;i<m;i++){
  40. scanf("%d%d%d%d",&tu,&tv,&tw,&trw);
  41. g[tu].push_back((edge){tu,tv,tw});
  42. g[tv].push_back((edge){tv,tu,trw});
  43. }
  44.  
  45. dfs(1,0,0);
  46.  
  47. printf("%d",(ans==INF?-1:ans));
  48. return 0;
  49. }
  50.