比赛 |
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(){;}