自己运行可以,放测评就编译错误。
请问是哪里出了问题?
#include<bits/stdc++.h>
#define N 101
using namespace std;
int n,m,x,y;
int start,end;
double d[N][N];
int a[N][N];
inline int read(){
register int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
return x*f;
}
inline double juli(int x1,int x2,int y1,int y2){
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
inline void init(){
n=read();
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==j){
d[i][j]=0;
}
else{
d[i][j]=0x3f;
}
}
}
for(int i=1;i<=n;i++){
a[i][1]=read();
a[i][2]=read();
}
m=read();
for(int i=1;i<=n;i++){
x=read();y=read();
d[x][y]=d[y][x]=juli(a[x][1],a[y][1],a[x][2],a[y][2]);
}
start=read();
end=read();
}
inline void floyed(){
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(d[i][k]+d[k][j]<d[i][j])
{
d[i][j]=d[i][k]+d[k][j];
}
}
}
}
}
inline void print(){
printf("%.2lf",d[start][end]);
}
int main(){
init();
floyed();
print();
}