zoukankan      html  css  js  c++  java
  • CodeForces

    Professor Dumbledore is helping Harry destroy the Horcruxes. He went to Gaunt Shack as he suspected a Horcrux to be present there. He saw Marvolo Gaunt's Ring and identified it as a Horcrux. Although he destroyed it, he is still affected by its curse. Professor Snape is helping Dumbledore remove the curse. For this, he wants to give Dumbledore exactly x drops of the potion he made.

    Value of x is calculated as maximum of p·ai + q·aj + r·ak for given p, q, r and array a1, a2, ... an such that 1 ≤ i ≤ j ≤ k ≤ n. Help Snape find the value of x. Do note that the value of x may be negative.

    Input

    First line of input contains 4 integers n, p, q, r ( - 109 ≤ p, q, r ≤ 109, 1 ≤ n ≤ 105).

    Next line of input contains n space separated integers a1, a2, ... an ( - 109 ≤ ai ≤ 109).

    Output

    Output a single integer the maximum value of p·ai + q·aj + r·ak that can be obtained provided 1 ≤ i ≤ j ≤ k ≤ n.

    Examples

    Input
    5 1 2 3
    1 2 3 4 5
    Output
    30
    Input
    5 1 2 -3
    -1 -2 -3 -4 -5
    Output
    12

    Note

    In the first sample case, we can take i = j = k = 5, thus making the answer as 1·5 + 2·5 + 3·5 = 30.

    In second sample case, selecting i = j = 1 and k = 5 gives the answer 12.

    思路:我忽略了题目中的1 ≤ i ≤ j ≤ k ≤ n,导致一直wa,满脸泪水。

    #include <cstdio>
    #include <iostream>
    #include <string>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include <queue>
    #include <vector>
    #include <map>
    using namespace std;
    #define ll long long
    
    ll p, q, r, num[100000+8], miao1 = -8e18, miao2 = -8e18, miao3 = -8e18, ans;
    int n;
    
    int main()
    {
        scanf("%d%lld%lld%lld", &n, &p, &q, &r);
        for(int i = 0; i<n; i++)
        {
            scanf("%lld", &num[i]);
            miao1 = max(miao1, p*num[i]);
            miao2 = max(miao2, miao1+q*num[i]);//保证1 ≤ i ≤ j 
            miao3 = max(miao3, miao2+r*num[i]);//保证1 ≤ i ≤ j ≤ k ≤ n
        }
        printf("%lld
    ", miao3);
        return 0;
    }
  • 相关阅读:
    bzoj 1031: [JSOI2007]字符加密Cipher 後綴數組模板題
    hdu3949 XOR xor高斯消元
    The xor-longest Path
    Contest20140906 反思
    Contest20140906 ProblemC 菲波拉契数制 DP
    Contest20140906 ProblemA dp+线段树优化
    bzoj 1257: [CQOI2007]余数之和sum 数学 && 枚举
    tyvj P1716
    BZOJ 1012 [JSOI2008]最大数maxnumber【线段树】
    Bzoj1083 1083: [SCOI2005]繁忙的都市【MST】
  • 原文地址:https://www.cnblogs.com/RootVount/p/11215590.html
Copyright © 2011-2022 走看看