已知 n 所城市(从 1 至 n 编号)及其美丽值,选取一条旅行路线,满足路线中两两城市美丽值之差等于编号之差,求所有旅行路线中美丽值的最大值。
美丽值与编号作差,差值为键,映射累加 。
#include
using namespace std;
int main()
{
int n;cin>>n;
int b[n];for(int &i:b) cin>>i;
map
for(int i=0;i<n;i++)
_map[b[i]-i]+=b[i];
long long mx=0;
for(auto &i:_map)
mx=max(mx,i.second);
cout<<mx;
return 0;
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章