Problem 1031 - 走樓梯
Time Limit
: 1000MS ?
Memory Limit
: 65536KB ?
Difficulty
:
Total Submit : 724? Accepted : 383? Special Judge : No
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)。
每組測試數據有兩行:第一行為三個整數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
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
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
;
}
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

