View Code of Problem 130

#include<iostream>
using namespace std;

struct Point{
	int x,y;
};
int Count(int p,int n,int a[][1000],int &c)
{
	int cnt=0;
	for (int i=0;i<n;i++)
	{
		if(a[p-1][i]>0)
		{	c+=a[p-1][i];
		cnt++;
		}
	}
	return cnt;
}
int main()
{
	static int a[1000][1000],b[1000];
	int m,n,xx,yy,ss,flag,max,c;
	static	Point pp[200000];
	Point p;
	cin>>n>>m;
		for (int i=0;i<n;i++)
		{
			b[i]=0;
			for (int j=0;j<n;j++)
				a[i][j]=0;
		}
		for (int i=0;i<m;i++)
		{
			cin>>xx>>yy>>ss;
			a[xx-1][yy-1]=a[yy-1][xx-1]=ss;
			pp[i].x=xx;
			pp[i].y=yy;
		}
		flag=0;
		max=c=0;
		for (int i=0;i<m;i++)
		{
			if(Count(pp[i].x,n,a,c)==1||Count(pp[i].y,n,a,c)==1)
			{	
				if(max<c)
				{
					max=c;
					p=pp[i];
				}
				flag=1;
			}
		}
		if(flag)
			cout<<p.x<<" "<<p.y<<endl;
		else
			cout<<-1<<endl;
	return 0;
}

Double click to view unformatted code.


Back to problem 130