比赛 平凡的题目 评测结果 MMMMM
题目名称 平凡的皮卡丘 最终得分 0
用户昵称 dududu 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2015-11-03 10:59:04
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<queue>
#include<vector>
#include<stack>
#include<cmath>
#include<algorithm>
#include<map>
#include<set>
using namespace std;
int n,m,flag=-1,minn=999999;
int a[10000+10][10000+10]={0};
int vis[10000+10][10000+10];
void read()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int u,v;
		cin>>u>>v;
		cin>>a[u][v]>>a[v][u];
	}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			vis[i][j]=1;
}
void sovle(int step,int w)
{
	if(step==1&&w!=0)
	{
		if(w<minn)
		{
			minn=w;
			flag=0;
		}
		return;	
	}
	for(int i=1;i<=n;i++)
	{
		if(a[step][i]!=0)
		{
			if(vis[step][i]==1)
			{
			vis[i][step]=0;
			vis[step][i]=0;
			w+=a[step][i];
			sovle(i,w);
			w-=a[step][i];
			vis[step][i]=1;
			vis[i][step]=1;
			}
		}	
	}
}
int main()
{	
	freopen("both.in","r",stdin);
	freopen("both.out","w",stdout);
	read();
	sovle(1,0);
	if(flag) cout<<-1<<endl;
	else cout<<minn<<endl;
	return 0;
}