题目描述:
思路:
因为属于同一个连续升序序列的数的值减下标是相同的,所以只要遍历一遍即可。利用map容器可以更方便的建立这种一一对应的关系。
#include<iostream>
#include<map>
using namespace std;
typedef unsigned long long ll;
int main()
{
map<ll,ll> mp;
ll n,k,m=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>k;
mp[k-i]+=k;
m=max(m,mp[k-i]);
}
cout<<m<<endl;
return 0;
}