Submission #489031

#TimeUsernameProblemLanguageResultExecution timeMemory
4890311neDetecting Molecules (IOI16_molecules)C++14
0 / 100
1 ms1100 KiB
#include "molecules.h"
#include<bits/stdc++.h>
using namespace std;
const int MXN = 500001;
std::vector<int> find_subset(int l, int u, std::vector<int> arr) {
    int n = arr.size();    
    vector<bitset<MXN>>dp(n+1);
    dp[0][0]=1;
    for (int i = 0;i<n;++i){
    	dp[i+1]|=dp[i];
    	dp[i+1]|=(dp[i]<<arr[i]);
    }
    int val =-1;
    for (int i = l;i<=u;++i){
    	if (dp[n][i]){
    		val = i;
    		break;
    	}
    }
    cout<<val<<'\n';
    vector<int>ans;
    int index = n;  
    while(index>0&&val>0){
    	if (dp[index-1][val-arr[index-1]]){
    		ans.push_back(index-1);
    		val-=arr[index-1];
    	}
    	index--;
    }
    return ans;
}
#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...