问题描述
输入形式
输出形式
对于每个测试用例,输出独立一行,表示选择合适的开始位置后经过上述操作可以获得的最大分数。
样例输入
4
5
7 3 1 2 3
3
2 1 4
6
2 1000 2 3 995 1
5
1 1 1 1 1
样例输出
7
6
1000
5
参考代码
#include<bits/stdc++.h>
using namespace std;
int jump(int num[],int i,int len){
int sum=0;
while(i<=len){
sum+=num[i];
i+=num[i];
}
return sum;
}
int main(){
int n;cin>>n;
while(n--){
int len;cin>>len;
int num[len];
for(int i=1;i<=len;i++)cin>>num[i];
int max=0;
for(int i=1;i<=len;i++)
if(jump(num,i,len)>max)max=jump(num,i,len);
cout<<max<<endl;
}
}