走楼梯[XDU1031]

系统 1634 0
Problem 1031 - 走楼梯
Time Limit : 1000MS   Memory Limit : 65536KB   Difficulty :
Total Submit : 724  Accepted : 383  Special Judge : No
Description

  ZYF最喜欢的活动是走楼梯!所以他每次去实验室总会坐电梯随机到一个楼层,然后走楼梯到实验室所在的楼层,并为此得意不已。现在的问题来了,已经知道每两层楼之间的楼梯级数、ZYF坐电梯要到达的楼层、实验室所在楼层,那么ZYF每次得走多少级楼梯才能到达实验室?

Input
输入数据的第一行是一个正整数T(0<T≤100),表示有T组测试数据。
每组测试数据有两行:第一行为三个整数N, A, B(0<N≤100, 0<A, B≤N),表示有N层楼,ZYF坐电梯到的楼层A,实验室所在楼层为B;第二行包括N–1个整数,其中第i个整数代表从第i层到第i + 1层之间的楼梯级数Si(0<Si≤100)。
Output
对于每组测试数据,在一行上输出一个整数P,表示ZYF到实验室所在楼层需要走P级楼梯。
Sample Input
3
6 1 5
10 10 10 10 10
6 5 1
10 10 10 10 10
10 3 7
1 2 3 4 5 6 7 8 9
Sample Output
40
40
18
Hint
 
Source
8th Xidian University Collegiate Programming Contest(2010.6)
          #include<stdio.h>


          
            int
          
           d[
          
            1024
          
          
            ];


          
          
            int
          
          
             main()

{

    
          
          
            int
          
          
             T,N,A,B,i;

    scanf(
          
          
            "
          
          
            %d
          
          
            "
          
          ,&
          
            T);

    
          
          
            while
          
           (T--
          
            )

    {

        scanf(
          
          
            "
          
          
            %d%d%d
          
          
            "
          
          ,&N,&A,&
          
            B);

        
          
          
            for
          
           (i=
          
            1
          
          ;i<N;i++) scanf(
          
            "
          
          
            %d
          
          
            "
          
          ,&
          
            d[i]);

        
          
          
            if
          
           (A==B) printf(
          
            "
          
          
            0\n
          
          
            "
          
          
            );

        
          
          
            else
          
          
            if
          
           (A>
          
            B)

        {

            
          
          
            int
          
           ans=
          
            0
          
          
            ;

            
          
          
            while
          
           (A>
          
            B)

            {

                ans
          
          +=d[A-
          
            1
          
          
            ];

                A
          
          --
          
            ;

            }

            printf(
          
          
            "
          
          
            %d\n
          
          
            "
          
          
            ,ans);

        }

        
          
          
            else
          
          
            

        {

            
          
          
            int
          
           ans=
          
            0
          
          
            ;

            
          
          
            while
          
           (A<
          
            B)

            {

                ans
          
          +=
          
            d[A];

                A
          
          ++
          
            ;

            }

            printf(
          
          
            "
          
          
            %d\n
          
          
            "
          
          
            ,ans);

        }

    }

    
          
          
            return
          
          
            0
          
          
            ;

}
          
        

 

走楼梯[XDU1031]


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论