比赛 20150424 评测结果 AAAAEEEEWAWWWWW
题目名称 相遇时间 最终得分 33
用户昵称 slyrabbit 运行时间 3.569 s
代码语言 C++ 内存使用 0.27 MiB
提交时间 2015-04-24 10:29:42
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
class node
{
public:
	int A;
	int B;
};
class city
{
public:
	vector<int> xa;
	vector<int> xb;
	vector<int> son;
	vector<node> cost;
}a[105];
int n,m;
void init()
{
	cin>>n>>m;
	int x,y,temp1,temp2;
	node temp;
	for(int i=1;i<=m;i++)
	{
		cin>>x>>y>>temp1>>temp2;
		temp.A=temp1;
		temp.B=temp2;
		a[x].son.push_back(y);
		a[x].cost.push_back(temp);
	}
}
void work()
{
	bool b[105]={0};
	queue<int> q;
	q.push(1);
	b[1]=1;
	a[1].xa.push_back(0);
	a[1].xb.push_back(0);
	while(!q.empty())
	{
		int u=q.front();
		q.pop();
		for(int i=0;i<a[u].son.size();i++)
		{
			for(int j=0;j<a[u].xa.size();j++)
			{
				int tempa=a[u].xa[j]+a[u].cost[i].A;
				int tempb=a[u].xb[j]+a[u].cost[i].B;
				a[a[u].son[i]].xa.push_back(tempa);
				a[a[u].son[i]].xb.push_back(tempb);
			}
			if(!b[a[u].son[i]])
			{
			    q.push(a[u].son[i]);
			    b[a[u].son[i]]=1;
			}
		}
	}
}
void print()
{
	sort(a[n].xa.begin(),a[n].xa.end());
	sort(a[n].xb.begin(),a[n].xb.end());
	for(int i=0,j=0;i<a[n].xa.size()&&j<a[n].xb.size();)
	{
		if(a[n].xa[i]==a[n].xb[j]){
			cout<<a[n].xa[i];
			break;
		}
		if(a[n].xa[i]<a[n].xb[j]||j==a[n].xb.size()-1)
		{
			i++;continue;
		}
		if(a[n].xa[i]>a[n].xb[j]||i==a[n].xa.size()-1)
		{
			j++;continue;
		}
	}
	
}
int main()
{
	freopen("meeting.in","r",stdin);
	freopen("meeting.out","w",stdout);
	init();
	work();
	print();
	return 0;
}