讨论 / AC100
huangzimai 2016-10-15 22:27:37
点我顶贴 收藏 删除
#include <iostream>

#include <cstdio>

#include <cstdlib>

#include <string>

#include <cstring>

#include <cmath>

#include <algorithm>

using namespace std;

int g[205][205];

int main()

{

int a,b,n,k;

cin>>n>>a>>b;

for (int i=1;i<=n;i++)

for (int j=1;j<=n;j++)

g[i][j]=9999;

for (int i=1;i<=n;i++)

{

g[i][i]=0;

cin>>k;

if (i+k<=n) g[i][i+k]=1;

if (i-k>0) g[i][i-k]=1;

}

for (int k=1;k<=n;k++)

for (int i=1;i<=n;i++) if (i!=k)

for (int j=1;j<=n;j++) if ((i!=j)&&(j!=k))

if (g[i][j]>g[i][k]+g[k][j])

g[i][j]=g[i][k]+g[k][j];

if (g[a][b]==9999) cout<<"-1"<<endl;

else cout<<g[a][b]<<endl;

}

查看更多回复
提交回复