WA点3、5,QAQ
#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f;
const int N=1e5+5;
int n,m;
char ans;
struct Edge{
int v,w;
Edge(int v,int w):v(v),w(w){}
};
struct Node{
int u,d;
Node(int u,int d):u(u),d(d){}
bool operator < (const Node &a) const{
return d>a.d;
}
};
int d[N],vis[N];
vector<Edge> adj[N];
void dij(int s){
for(int i=1;i<=200;i++)d[i]=INF;
d[s]=0;
priority_queue<Node>q;
q.push(Node(s,0));
while(!q.empty()){
int u=q.top().u;
q.pop();
if(vis[u])continue;
vis[u]=1;
for(int i=0;i<adj[u].size();i++){
int v=adj[u][i].v;
int w=adj[u][i].w;
if(d[v]>d[u]+w){
d[v]=d[u]+w;
q.push(Node(v,-d[v]));
}
}
}
}
signed main(){
cin>>n;
for(int i=0;i<n;i++){
char u,v;
int w;
cin>>u>>v>>w;
adj[(int)u].push_back(Edge((int)v,w));
adj[(int)v].push_back(Edge((int)u,w));
}
dij((int)'Z');
ans='A';
for(int i='B';i<='Y';i++)
if(d[(int)i]<d[(int)ans])
ans=i;
cout<<ans<<" "<<d[(int)ans];
return 0;
}