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...