27662023-01-23 09:20:17CattCsoportokba osztáscpp17Hibás válasz 0/100150ms6276 KiB
#include <bits/stdc++.h>
using namespace std;
#define InTheNameOfGod ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);
using ll = long long;

const int maxN = 2e5 + 5;
const int INF = 1e9 + 7;

int main() {
    int t = 1;
    //cin >> t;
    while(t--)
    {
        int n, k;
        cin >> n >> k;

        vector<int> prefSum(n+1, 0);

        vector<int> v(n);
        for(int i = 0; i < n; i++) {
            cin >> v[i];
            prefSum[i+1] = prefSum[i] + v[i];
        }
        
        set<int> leaders;
        leaders.insert(n-1);
        
        for(int j = 0; j < k-1; j++) {
            int last = 0;
            int maxi = -INF, ind = -1;
            auto it = leaders.begin();
            //cout << j << ": \n";
            for(int i = 0; i < n-1; i++) {
                //cout << i << ": " << last << ", " << (*it) << endl;
                if(leaders.find(i) != leaders.end()) {
                    last = i+1;
                    it++;
                    continue;
                }

                if((prefSum[i+1] - prefSum[last]) * (abs(v[i]) - v[(*it)]) > maxi) {
                    maxi = (prefSum[i+1] - prefSum[last]) * (abs(v[i]) - v[(*it)]);
                    ind = i;
                }
                /*cout << "val: " << (prefSum[i+1] - prefSum[last]) * (abs(v[i]) - v[(*it)]) << endl;
                cout << "maxi: " << maxi << ", " << ind << endl;*/
            }

            //cout << "-------\n";
            leaders.insert(ind);
        }
        
        int mo = 0, last = 0;
        for(int sz : leaders) {
            mo += (prefSum[sz+1] - prefSum[last]) * abs(v[sz]);
            last = sz + 1;
        }
        cout << mo;
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1816 KiB
2Elfogadva2ms2056 KiB
subtask20/5
3Hibás válasz35ms3652 KiB
4Hibás válasz35ms3720 KiB
5Hibás válasz37ms3848 KiB
subtask30/22
6Hibás válasz4ms2712 KiB
7Hibás válasz4ms2920 KiB
8Hibás válasz4ms3264 KiB
9Hibás válasz4ms3132 KiB
10Hibás válasz4ms3204 KiB
11Hibás válasz4ms3372 KiB
subtask40/34
12Hibás válasz2ms3528 KiB
13Hibás válasz2ms3672 KiB
14Hibás válasz2ms3784 KiB
15Hibás válasz144ms5268 KiB
16Hibás válasz143ms5432 KiB
17Hibás válasz143ms5592 KiB
18Hibás válasz2ms4336 KiB
19Hibás válasz2ms4444 KiB
20Hibás válasz3ms4456 KiB
21Hibás válasz144ms5788 KiB
22Hibás válasz145ms5788 KiB
23Hibás válasz143ms5872 KiB
subtask50/29
24Hibás válasz145ms5784 KiB
25Hibás válasz143ms5788 KiB
26Hibás válasz143ms5868 KiB
27Hibás válasz144ms5788 KiB
28Hibás válasz142ms5864 KiB
29Hibás válasz143ms5952 KiB
30Hibás válasz144ms5952 KiB
31Hibás válasz142ms5952 KiB
32Hibás válasz143ms5948 KiB
subtask60/10
33Hibás válasz143ms6084 KiB
34Hibás válasz150ms6156 KiB
35Hibás válasz145ms6068 KiB
36Hibás válasz145ms6276 KiB
37Hibás válasz145ms6268 KiB
38Hibás válasz146ms6276 KiB