View Code of Problem 130

#include<stdio.h>
#include<string.h>
#define M 20000
int main()
{
int n,a[M],b[M],w[M],c[M],flag=0,d[M],k=0,max,maxi,maxj,i,j;
long m;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(c,0,sizeof(c));
for(i=0;i<m;i++)
{scanf("%d%d%d",&a[i],&b[i],&w[i]);
c[a[i]]++;c[b[i]]++;
}
for(i=1;i<=n;i++)
{if(c[i]==0)
{
	printf("-1\n");
	flag=1;
}
}
for(i=0;i<n;i++)
{if(c[i]==1&&!flag)
 d[k++]=i;
}
for(i=0;i<k;i++)
for(j=0;j<m;j++)
if(d[i]==a[j]||d[i]==b[j])
{max=w[j];
maxi=a[j];
 maxj=b[j];

break;
}
for(i=0;i<k;i++)
for(j=0;j<m;j++)
{if((d[i]==a[j]||d[i]==b[j])&&w[j]>max)
{max=w[j];
 maxi=a[j];
 maxj=b[j];
}
}
if(!flag)
printf("%d %d\n",maxi,maxj);
flag=0;k=0;
}
}

Double click to view unformatted code.


Back to problem 130