Submission #725357

#TimeUsernameProblemLanguageResultExecution timeMemory
725357AndrijaMDetecting Molecules (IOI16_molecules)C++14
9 / 100
3 ms4308 KiB
#include <bits/stdc++.h>

using namespace std;

vector<int>arr;
int n;
int dp[1005][1005];

int f(int idx,int x,vector<int>vec,int mx,vector<int>weight)
{
    if(idx==n)
    {
        arr=vec;
        return 0;
    }
    if(dp[idx][x]!=-1)return dp[idx][x];
    int rez=0;
    rez=max(rez, f(idx+1,x,vec,mx,weight));
    vector<int>pom;
    pom=vec;
    pom.push_back(idx);
    if(x+weight[idx]<=mx)
    rez=max(rez, f(idx+1,x+weight[idx],pom,mx,weight)+weight[idx]);
    return dp[idx][x]=rez;
}

vector<int> find_subset(int l, int u, vector<int> w)
{
    memset(dp,-1,sizeof dp);
    vector<int>v;
    queue<int>Q;
    n=w.size();
    int kol=f(0,0,v,u,w);
    if(kol<l)
    {
        arr.clear();
    }
    return arr;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...