| 比赛 | 
    ctime蒟蒻生日赛 | 
    评测结果 | 
    AAAAAAAA | 
    | 题目名称 | 
    双服务点设置 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    Samle | 
    运行时间 | 
    0.000 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.00 MiB  | 
    | 提交时间 | 
    2017-10-17 19:56:10 | 
显示代码纯文本
#include<map>
#include<queue>
#include<cmath> 
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define R register
#define ll long long
#define inf 707406378
inline void in(int &x) {
    static ll ch; static bool flag;
    for(flag = false,ch = getchar();ch < '0'||ch > '9';ch = getchar()) flag |= ch == '-';
    for(x = 0;isdigit(ch);ch = getchar()) x = (x<<1) + (x<<3) + ch - '0';
    x = flag ? -x : x;
}
inline void write(int x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
int maxn=inf,pos1,pos2;
int dis[105][105];
int n,m;
inline int dy(){
	
	freopen("djsb.in","r",stdin);
	freopen("djsb.out","w",stdout);
	in(n),in(m);
	memset(dis,inf,sizeof(dis));
	for(int i=1;i<=m;++i){
		R int a,b,c;in(a),in(b),in(c);
		dis[b][a]=dis[a][b]=min(dis[a][b],c);
	}
	for(int i=0;i<n;++i)dis[i][i]=0;
	for(int k=0;k<n;++k)
		for(int i=0;i<n;++i)
			if(dis[i][k]!=inf)
				for(int j=0;j<n;++j)
					if(dis[j][k]!=inf && dis[i][k]+dis[k][j]<dis[i][j])
						dis[i][j]=dis[i][k]+dis[k][j];
	for(int i=0;i<n;++i)
		for(int j=i+1;j<n;++j){
			R int maxx=0;
			for(int k=0;k<n;++k){
				R int s=min(dis[i][k],dis[j][k]);
				if(s>maxx)maxx=s;
			}
			if(maxx<maxn)maxn=maxx,pos1=i,pos2=j;
		}
	write(pos1),putchar(' '),write(pos2);
	exit(0);
}
int QAQ = dy();
int main(){;}