国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > School Personal Contest #1 (Codeforces Beta Round #38)---A. Army

School Personal Contest #1 (Codeforces Beta Round #38)---A. Army

来源:程序员人生   发布时间:2014-11-09 09:27:11 阅读次数:3502次

Army
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

The Berland Armed Forces System consists of n ranks that are numbered using natural numbers from 1 to n, where 1 is the lowest rank and n is the highest rank.

One needs exactly di years to rise from rank i to rank i?+?1. Reaching a certain rank i having not reached all the previous i?-?1 ranks is impossible.

Vasya has just reached a new rank of a, but he dreams of holding the rank of b. Find for how many more years Vasya should serve in the army until he can finally realize his dream.

Input

The first input line contains an integer n (2?≤?n?≤?100). The second line contains n?-?1 integers di (1?≤?di?≤?100). The third input line contains two integers a and b (1?≤?a?<?b?≤?n). The numbers on the lines are space-separated.

Output

Print the single number which is the number of years that Vasya needs to rise from rank a to rank b.

Sample test(s)
input
3 5 6 1 2
output
5
input
3 5 6 1 3
output
11




解题思路:就是简单的求区间和。

直接开个和数组,a[i]代表i之前(包括i)的所有数的和。查询时,直接两个和减1下便可。





AC代码:

#include <string.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <map> #include <string> #include <math.h> #include <stdlib.h> #include <time.h> using namespace std; #define INF 0x7fffffff int c[105]; int main() { #ifdef sxk freopen("in.txt","r",stdin); #endif int n, a, b, t; while(scanf("%d",&n)!=EOF) { c[0] = 0; scanf("%d", &c[1]); for(int i=2; i<=n⑴; i++){ scanf("%d", &t); c[i] = c[i⑴] + t; } scanf("%d%d", &a, &b); printf("%d ", c[b⑴] - c[a⑴]); } return 0; }


生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生