Submission #199393

#TimeUsernameProblemLanguageResultExecution timeMemory
199393kshitij_sodaniDetecting Molecules (IOI16_molecules)C++17
31 / 100
1095 ms504 KiB
#include <iostream>
#include <bits/stdc++.h>
#include "molecules.h"
using namespace std;
typedef  long long int llo ;

#define mp make_pair
#define pb push_back
#define a first
#define b second
vector<int> find_subset(int l,int u,vector<int> w){
	bitset<500001> dp;
	dp.set(0);
	for(int j=0;j<w.size();j++){
		for(int i=500001;i>=w[j];i--){
			dp[i]=dp[i] | dp[i-w[j]];
		}
	}
	int ind=-1;
	for(int i=l;i<u+1;i++){
		if(dp[i]){
			ind=i;
			break;
		}
	}
	//cout<<ind<<endl;
	//cout<<w[dp[15]]<<endl;
	vector<int> ans;
	if(ind==-1){
		return ans;
	}
	int vis[w.size()];
	while(ind>0){
		for(int i=0;i<w.size();i++){
			if(vis[i]==1){
				continue;
			}
			if(w[i]<=ind){
				if(dp[ind-w[i]]){
					ans.pb(i);
					vis[i]=1;
					ind-=w[i];
					break;
				}
			}
		}
	}
	return ans;
}
/*
int main(){

	vector<int> ss=find_subset(15,17,{6,8,8,7});
	for(int i=0;i<ss.size();i++){
		cout<<ss[i]<<" ";
	}
	cout<<endl;


	return 0;


}*/

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:14:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int j=0;j<w.size();j++){
              ~^~~~~~~~~
molecules.cpp:34:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<w.size();i++){
               ~^~~~~~~~~
#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...