Jump

JumpProblem B:Jump

Time Limit:1000MS Memory Limit:65536K
Total Submit:43 Accepted:12 Page View:297

[Submit] [Status] [Clarify]

Font Size: Aa Aa Aa

Description

There is n pillars, their heights are (A1,A2,A3,…An. You can jump at the top of the pillars. But you will lose abs(a[j]-a[i])*abs(j-i) power when you jump from i-th pillar to j-th pillar. At first you have m power. Can you jump from s-th pillar to e-th pillar?

Input

The input consists of several test cases.

Every test case is two integer n(2<=n<200), q(1=
The second line contain n integer A1, A2, A3,..An.
The next q line contain there integer s, e, m .

Output

If you can jump from s to e, with less or equal m power output “Yes”, else output “No”

Sample Input

3 3

1 2 3
1 3 2
1 2 1
1 3 1

Sample Output

Yes

Yes
No

Hint

Abs(a-b) mean the absolute value of a-b.
最短路问题,floyd算法!
#include <iostream>
using namespace std;
#define N 205
int f(int x)
      return x>=0?x:-x;
}
int main()
{
        int n,q,map[N][N];
       while(cin>>n>>q)
     {
                int i, j, k;
             int a[N];
                for(i=0;i<n;i++)
                  cin>>a[i];
         for(i=0; i<n; i++)
                        for(j=0; j<n; j++)
                                map[i][j] = f(a[i]-a[j])*f(i-j);
         for(k=0; k<n; k++)
                        for(i=0; i<n; i++)
                                for(j=0; j<n; j++)
                                        if(map[i][k]+map[k][j]<map[i][j])
                                         map[i][j] = map[i][k]+map[k][j];
         while(q--)
               {
                        int s, e, m;
                     cin>>s>>e>>m;
                  if(map[s-1][e-1]<=m)
                              cout<<"Yes"<<endl;
                   else
                             cout<<"No"<<endl;
            }
        }
        return 0;
}
{
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值