Submission #1305838

#TimeUsernameProblemLanguageResultExecution timeMemory
1305838DanielPr8Olympiads (BOI19_olympiads)C++20
44 / 100
1818 ms327680 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = int;
using vll = vector<ll>;
using vvl = vector<vll>;
using pll = pair<ll,ll>;
using vpl = vector<pll>;
using vvp = vector<vpl>;

#define f first
#define s second
#define pb push_back
#define all(v) v.begin(), v.end()
vvl pr;
ll C, n, k, kw;

vvl solve(ll i, ll le, vll mx){
    if(le==0)return {mx};
    if(i==n)return {};
    vvl ans = solve(i+1, le, mx);
    for(ll j = 0; j < k; ++j)mx[j]=max(mx[j],pr[i][j]);
    vvl tr = solve(i+1, le-1, mx);
    for(auto i:tr)ans.pb(i);
    return ans;
}

int main(){
    ios_base::sync_with_stdio(0);cin.tie(NULL);
    cin >> n >> k >> C;
    kw=(1<<k);
    pr = vvl(n, vll(k));
    for(auto& i:pr){
        for(auto& j:i){
            cin >> j;
        }
    }
    vll mx(k);
    vvl ret = solve(0,k,mx);
    vll ord;
    for(auto i: ret)ord.pb(accumulate(all(i),0ll));
    sort(all(ord), greater());
    cout << ord[C-1];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...