Pagini recente » Cod sursa (job #145399) | Cod sursa (job #1758219) | Cod sursa (job #1144671) | Cod sursa (job #1633950) | Cod sursa (job #6951)
Cod sursa(job #6951)
#include <stdio.h>
using namespace std;
int s[300],n,m,k,x[300],y[300];
long c[300],c1[301];
void drum(int sursa)
{
int i,st[30000],nr,max;
for (i=0;i<n;i++)
c1[i]=0;
st[0]=sursa;
nr=1;
while (nr>0)
{
for (i=0;i<k;i++)
{
if (x[i]==st[0])
{
max=c[i]>c1[st[0]] ? c[i] : c1[st[0]];
if (c1[y[i]]==0||c1[y[i]]>max)
{
c1[y[i]]=max;
st[nr]=y[i];
nr++;
}
}
if (y[i]==st[0])
{
max=c[i]>c1[st[0]] ? c[i] : c1[st[0]];
if (c1[x[i]]==0||c1[x[i]]>max)
{
c1[x[i]]=max;
st[nr]=x[i];
nr++;
}
}
}
for (i=0;i<nr-1;i++)
st[i]=st[i+1];
nr--;
}
}
int main()
{
int i,a[150][2],sursa;
freopen("radiatie.in","r",stdin);
freopen("radiatie.out","w",stdout);
scanf("%d %d %d\n",&n,&m,&k);
for (i=0;i<m;i++)
scanf("%d %d %ld\n",&x[i],&y[i],&c[i]);
for (i=0;i<k;i++)
scanf("%d %d",&a[i][0],&a[i][1]);
int k2=k;
while (k2>0)
{
sursa=0;
for (i=0;i<k;i++)
{
if (sursa==0&&s[a[i][0]]==0)
{
s[a[i][0]]=1;
sursa=a[i][0];
drum(sursa);
}
if (a[i][0]==sursa)
{
printf("%ld\n",c1[a[i][1]]);
k2--;
}
}
}
return 0;
}