#include<bits/stdc++.h>
using namespace std;
#define int long long
#define INT_MAX LONG_LONG_MAX
#define INT_MIN LONG_LONG_MIN
int d[505][505],now[505];
string a;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int m,n;
cin>>m>>n;
memset(d,0x3f,sizeof(d));
getline(cin,a);
for(int i = 1;i<=m;i++){
getline(cin,a);
int num,l,h;
num = 1;
l = a.size();
h = 0;
for(int j = 0;j<l;j++){
if(a[j] == ' '){
now[num++] = h;
h = 0;
}else{
h = h*10+a[j]-'0';
}
}
now[num] = h;
for(int j = 1;j<=num;j++){
for(int k = j+1;k<=num;k++){
d[now[j]][now[k]] = 1;
}
}
}
for(int i = 1;i<=n;i++){
d[i][i] = 0;
}
for(int k = 1;k<=n;k++){
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
d[i][j] = min(d[i][j],d[i][k]+d[k][j]);
}
}
}
if(d[1][n] == d[0][0]){
cout<<"NO\n";
return 0;
}
cout<<d[1][n]-1<<"\n";
return 0;
}
这份代码在本地跑数据都可以过,但是提交上去显示输出的都是NO。我输入的有什么问题啊?求调!
数据:
in:
4
15
2 11
1 3 4 5 9
3 6 11
2 7 8 10 11 12 13 15
out:2