2767 2023. 01. 23 09:23:19 Catt Csoportokba osztás cpp17 Hibás válasz 0/100 146ms 6440 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]) - abs(v[(*it)])) > maxi) {
                    maxi = (prefSum[i+1] - prefSum[last]) * (abs(v[i]) - abs(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) {
            //cout << sz << ' ';
            mo += (prefSum[sz+1] - prefSum[last]) * abs(v[sz]);
            last = sz + 1;
        }
        //cout << "\n";
        cout << mo;
    }
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1816 KiB
2 Elfogadva 2ms 2156 KiB
subtask2 0/5
3 Hibás válasz 37ms 3624 KiB
4 Hibás válasz 37ms 3844 KiB
5 Hibás válasz 37ms 4048 KiB
subtask3 0/22
6 Hibás válasz 4ms 2812 KiB
7 Hibás válasz 4ms 2940 KiB
8 Hibás válasz 4ms 3068 KiB
9 Hibás válasz 4ms 3148 KiB
10 Hibás válasz 4ms 3260 KiB
11 Hibás válasz 4ms 3312 KiB
subtask4 0/34
12 Hibás válasz 2ms 3340 KiB
13 Hibás válasz 2ms 3476 KiB
14 Hibás válasz 2ms 3588 KiB
15 Hibás válasz 143ms 5180 KiB
16 Hibás válasz 141ms 5056 KiB
17 Hibás válasz 142ms 5332 KiB
18 Hibás válasz 3ms 3952 KiB
19 Hibás válasz 2ms 3972 KiB
20 Hibás válasz 2ms 3972 KiB
21 Hibás válasz 142ms 5316 KiB
22 Hibás válasz 143ms 5440 KiB
23 Hibás válasz 141ms 5524 KiB
subtask5 0/29
24 Hibás válasz 143ms 5644 KiB
25 Hibás válasz 142ms 5732 KiB
26 Hibás válasz 143ms 5808 KiB
27 Hibás válasz 143ms 5884 KiB
28 Hibás válasz 138ms 5808 KiB
29 Hibás válasz 142ms 5940 KiB
30 Hibás válasz 142ms 5928 KiB
31 Hibás válasz 140ms 6012 KiB
32 Hibás válasz 140ms 6016 KiB
subtask6 0/10
33 Hibás válasz 145ms 6092 KiB
34 Hibás válasz 144ms 6180 KiB
35 Hibás válasz 146ms 6008 KiB
36 Hibás válasz 144ms 6012 KiB
37 Hibás válasz 144ms 6356 KiB
38 Hibás válasz 144ms 6440 KiB