比赛 |
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;
}