Submission #156527

#TimeUsernameProblemLanguageResultExecution timeMemory
156527a_playerDetecting Molecules (IOI16_molecules)C++14
19 / 100
1057 ms380 KiB
#include <bits/stdc++.h>

#define f first
#define s second
#define mp make_pair
#define pb push_back

using namespace std;

typedef long long ll;

int dp[10001];
bitset<10001> vis;

vector<int> find_subset(int l,int u,vector<int> w){
	
	dp[0]=1;
	for(int i=0;i<w.size();i++)
	for(int j=u;j>=w[i];j--)if(dp[j-w[i]])dp[j]=1;
	int pos=-1;
		for(int i=l;i<=u;i++)if(dp[i])pos=i;
  vector<int> sol;
		if(pos==-1){
			return sol;
			}
		while(pos>0)	
		for(int i=0;i<w.size();i++)if(!vis[i])if(pos-w[i]>=0)if(dp[pos-w[i]]){
			pos-=w[i];
			sol.push_back(i);
			vis[i]=1;
		}
		
		
	return sol;
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:18:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<w.size();i++)
              ~^~~~~~~~~
molecules.cpp:27:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<w.size();i++)if(!vis[i])if(pos-w[i]>=0)if(dp[pos-w[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...