View Code of Problem 130

#include<stdio.h>
#include<string.h>
#define M 200010
int main()
{
int n,a[M],b[M],w[M],c[M],flag=0,d[M],k=0,max,maxi,maxj,i,j,count;
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=1;i<=n;i++)
{if(c[i]==1&&!flag)
 d[k++]=i;
}
count=0;
for(i=1;i<=n;i++)
{if(c[i]>1&&!flag)
 count++;
if(count==n)
{flag=1;
printf("-1\n");
}
}

max=0;
for(j=0;j<m;j++)
for(i=0;i<k;i++)
{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