把错误数据下到本地能过,在洛谷里读了个(ASCII 0)
#include<bits/stdc++.h>
#define P 10005
using namespace std;
int p, m[P], vis[P], dis[P], cnt;
int a[P][P];
priority_queue <int, vector<int>, greater<int> > q;
void djst(int s){
memset(dis, 0x3f, sizeof(dis));
dis[s]=0;
q.push(s);
while(!q.empty()){
int u=q.top();
q.pop();
if(vis[u]) continue;
vis[u]=1;
for(int i=65;i<=122;i++){
if(a[u][i]!=0x3f && i!=90){
if(!vis[i] && dis[u]+a[u][i]<dis[i]){
dis[i] = dis[u]+a[u][i];
q.push(i);
}
}
}
}
}
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
scanf("%d",&p);
memset(a, 0x3f, sizeof(a));
for(int i=1;i<=p;i++){
char b, c;
int w;
cin>>b>>c>>w;
int u=int(b), v=int(c);
m[++cnt]=u, m[++cnt]=v;
a[u][v]=min(a[u][v], w);
a[v][u]=min(a[v][u], a[u][v]);
// cout << a[u][v] <<" "<< a[v][u]<<endl;
}
int minstep=0x3f3f3f3f, id=0;
djst(90);
for(int i=1;i<=cnt;i++)
if(char(m[i])>='A' && char(m[i])<='Y' && minstep>dis[m[i]])
minstep=dis[m[i]], id=m[i];
cout<<char(id)<<" "<<minstep<<endl;
return 0;
}