Submission #232397

#TimeUsernameProblemLanguageResultExecution timeMemory
232397UserIsUndefinedDetecting Molecules (IOI16_molecules)C++14
0 / 100
42 ms65540 KiB
#include <bits/stdc++.h> #include "molecules.h" using namespace std; bool dp[10005][10005]; std::vector<int> find_subset(int l, int u, std::vector<int> w) { memset(dp, false , sizeof dp); int n = w.size(); for (int i = 0 ; i < n ; i++){ dp[i][0] = true; } dp[0][w[0]] = true; for (int i = 1 ; i < w.size() ; i++){ for (int j = 1 ; j <= 10000 ; j++){ if (j >= w[i])dp[i][j]|= dp[i-1][j - w[i]]; dp[i][j]|= dp[i-1][j]; } } vector<int> ans; int k = 0; for (int i = l ; i <= u ; i++){ if (dp[n-1][i]){ k = i; break; } } for (int i = n - 1 ; i >= 1; i--){ if (k < w[i])continue; if (dp[i-1][k - w[i]]){ ans.push_back(i); k-=w[i]; if (k == 0)return ans; } } return ans; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:24:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 1 ; 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...