比赛 |
20160923 |
评测结果 |
WWWWWWWWW |
题目名称 |
道路重建 |
最终得分 |
0 |
用户昵称 |
123 |
运行时间 |
0.008 s |
代码语言 |
C++ |
内存使用 |
0.62 MiB |
提交时间 |
2016-09-23 21:39:52 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int a,b,k,j,z[10000]={0},x[10000]={0},v[10000]={0},w,p[1000]={0},ji[1000]={0};
class qw{
public:int x,y,o;
};
qw lu[150][150]={0};
int er(int r,int y){
int c,g;
w=1;
for(;r<y;)
{
for (c=1;c<=a;c++)
{
if(lu[z[r]][c].x!=0&&p[c]!=1)
{
z[y]=c;
y++;
p[c]=1;
x[c]=x[r]+lu[z[r]][c].y;
if(lu[z[r]][c].o==1)
{
v[w]=v[w]+1;
}
if(c==j)
{
ji[w]=x[c];
w++;
}
}
}
r++;
}
}
int main(){
freopen ("rebuild.in","r",stdin);
freopen ("rebuild.out","w",stdout);
int c,d,e,f,u,h,i,as;
cin>>a>>b;
for (c=1;c<=b;c++)
{
cin>>d>>e>>f;
lu[d][e].x=1;
lu[d][e].y=f;
}
cin>>u;
for (c=1;c<=u;c++)
{
cin>>d>>e;
lu[d][e].o=1;
}
cin>>k>>j;
z[1]=k;
x[1]=0;
p[k]=1;
er(1,2);
i=99999999;
as=9999999;
for (h=1;h<=w-1;h++)
{
if(ji[h]<i)
{
i=ji[h];
as=v[h];
}
if(ji[h]=i&&as>v[h])
{
as=v[h];
}
}
cout<<as;
return 0;
}