1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>




using namespace std;

int signals(int n){
    int signals = 0;
    bool dzialaj = true;
    int number = n;
    while(dzialaj){

        if(number%2 == 1){

            signals++;
        }

        number = number / 2;

        if(number == 0){
            dzialaj = false;
        }
    }
    return signals;
}

int check_power(int a, int qualityList[],int songLength){
    int maxPower = 0;
    int minB = a - songLength+1;
    int i = 0;
    for(i; i < songLength;i++){
        maxPower += qualityList[i] * signals(minB);
        minB++;

    }
    return maxPower;
}

int main()
{

    int songLength ;
    int maxB;

    cin >> songLength >> maxB;
    int quality[songLength];

    int i=0;

    while(i < songLength){
        cin >> quality[i];
        i++;
    }

    int maxPower = 0;
    while(maxB - songLength >= 0 ){
        if(check_power(maxB,quality,songLength) > maxPower){
            maxPower = check_power(maxB,quality,songLength);
        }
        maxB--;
    }
    cout << maxPower << endl;


}