比赛 平凡的题目 评测结果 TTTTT
题目名称 平凡的皮卡丘 最终得分 0
用户昵称 fyb 运行时间 5.000 s
代码语言 C++ 内存使用 0.80 MiB
提交时间 2015-11-03 11:15:12
显示代码纯文本
#include <cstdio>
#include <vector>

using namespace std;

#define NMAX 40000
#define INF 50000000

struct edge{
	int u,v,w;
};

int ans=INF;
vector<edge> g[NMAX+1];
bool pa[NMAX+1];

void dfs(int ind,int d,int p){
	int i;

	if(pa[ind]&&ind==1&&d<ans)ans=d;
	if(pa[ind])return;
	pa[ind]=true;
	for(i=0;i<g[ind].size();i++){
		if(g[ind][i].v==p)continue;
		dfs(g[ind][i].v,d+g[ind][i].w,ind);
	}
	pa[ind]=false;
}

int main(){
	int n,m;
	int tu,tv,tw,trw;
	int i;

	freopen("both.in","r",stdin);
	freopen("both.out","w",stdout);

	scanf("%d%d",&n,&m);
	for(i=0;i<m;i++){
		scanf("%d%d%d%d",&tu,&tv,&tw,&trw);
		g[tu].push_back((edge){tu,tv,tw});
		g[tv].push_back((edge){tv,tu,trw});
	}

	dfs(1,0,0);

	printf("%d",(ans==INF?-1:ans));
	return 0;
}