Submission #1366961

#TimeUsernameProblemLanguageResultExecution timeMemory
1366961hmms127Olympiads (BOI19_olympiads)C++20
44 / 100
2094 ms624 KiB
#include "bits/stdc++.h"
using namespace std;
#define f1(n) for(int i=0;i<n;i++)
#define f2(m,n,q) for(int i=m;i<n;i+=q)
#define int long long
#define pb push_back
constexpr int N=5e2+5,inf=1e18;
using pr=pair<int,int>;
using ar=array<int,3>;
int n,k,c;multiset<int>ans;
int a[N][7];
void add(vector<int>v) {
    int sm=0;
    f1(k)sm+=v[i];
    ans.insert(sm);
    if (ans.size()>c)ans.erase(ans.begin());
}
void rec(int i,int cnt,vector<int>&v) {
    if (cnt==k) {
        add(v);
        return;
    }
    if (cnt+(n-i)<k)return;
    vector<int>v1=v;
    for(int j=0;j<k;j++)v[j]=max(v[j],a[i][j]);
    rec(i+1,cnt+1,v);
    v=v1;
    rec(i+1,cnt,v);
}
signed main(){
    ios::sync_with_stdio(false);cin.tie(nullptr);
    cin>>n>>k>>c;
    f1(n) {
        for (int j=0;j<k;j++)cin>>a[i][j];
    }
    vector<int>v(k,0);
    rec(0,0,v);
    cout<<*ans.begin();
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...