Submission #1097716

#TimeUsernameProblemLanguageResultExecution timeMemory
1097716NewtonabcDetecting Molecules (IOI16_molecules)C++14
0 / 100
1 ms348 KiB
#include "molecules.h"
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
bool dp[N];
int bk[N];
int n;
vector<int> find_subset(int l, int u, vector<int> w) {
	n=w.size();
	vector<int> ans;
	dp[0]=true;
	for(int i=0;i<n;i++){
		for(int j=u;j>=0;j--){
			if(j-w[i]>=0){
				dp[j]|=dp[j-w[i]];
				bk[j]=i;
			}
		}
	}
	for(int i=l;i<=u;i++){
		if(dp[i]){
			int tmp=i;
			while(1){
				if(tmp==0) break;
				ans.push_back(bk[tmp]);
				tmp=bk[tmp];
			}
			break;
		}
	}
	/*for(int i=0;i<ans.size();i++) cout<<ans[i] <<" ";
	cout<<"\n\n\n";*/
    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...