Submission #288846

#TimeUsernameProblemLanguageResultExecution timeMemory
288846BasilhijazDetecting Molecules (IOI16_molecules)C++17
31 / 100
86 ms65540 KiB
#include "molecules.h" #include<bits/stdc++.h> using namespace std; const int N = 1e4 + 5; bool dp[N][N]; int n; vector<int> ans; bool ok = 0; void get(vector<int> arr, int i, int sum, vector<int> an){ if(ok)return; if(i == 0 && sum != 0 && dp[n - 1][sum]){ an.push_back(i); for(int a = 0; a < an.size(); a++){ ans.push_back(an[a]); } ok = 1; return; } if(i == 0 && sum == 0){ for(int a = 0; a < an.size(); a++){ ans.push_back(an[a]); } ok = 1; return; } if(dp[i - 1][sum]){ get(arr, i - 1, sum, an); } if(sum >= arr[i] && dp[i - 1][sum - arr[i]]){ an.push_back(i); get(arr, i - 1, sum - arr[i], an); } } std::vector<int> find_subset(int l, int u, std::vector<int> w) { n = w.size(); for(int j = 0; j < n; j++){ dp[j][w[j]] = 1; dp[j][0] = 1; } for(int i = 1; i < n; i++){ for(int j = 0; j <= 1e4 + 1; j++){ if(j >= w[i]){ dp[i][j] = dp[i - 1][j - w[i]] || dp[i - 1][j]; } else{ dp[i][j] = dp[i - 1][j]; } } } for(int i = l; i <= u; i++){ if(dp[n - 1][i]){ get(w, n - 1, i, ans); break; } } sort(ans.begin(), ans.end()); return ans; }

Compilation message (stderr)

molecules.cpp: In function 'void get(std::vector<int>, int, int, std::vector<int>)':
molecules.cpp:15:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |         for(int a = 0; a < an.size(); a++){
      |                        ~~^~~~~~~~~~~
molecules.cpp:22:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |         for(int a = 0; a < an.size(); a++){
      |                        ~~^~~~~~~~~~~
#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...