Submission #261625

#TimeUsernameProblemLanguageResultExecution timeMemory
261625themax23Detecting Molecules (IOI16_molecules)C++17
31 / 100
4 ms1792 KiB
#include "molecules.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const int INF = 1e9; ll L, R, N; vector<int> W; int memo[1003][103]; bool cache[1003][103]; bool P[1003][103]; int DP(ll sum,int idx){ if(idx > N) return 0; if(sum >=L && sum <= R) return sum; if(sum > R) return 0; if(cache[sum][idx]) return memo[sum][idx]; cache[sum][idx] = true; ll ans1 = DP(sum + W[idx], idx+1); ll ans2 = DP(sum,idx+1); ll ans = 0; if(ans1 >= L && ans1 <= R){P[sum][idx] = true; ans = ans1;} else if(ans2 >= L && ans2 <= R) {ans = ans2;} memo[sum][idx] = ans; return ans; } std::vector<int> find_subset(int l, int u, std::vector<int> w) { L = l, R = u, N = (int) w.size(); W = w; vector<int> sub; ll ans = DP(0,0); for(int i = 0, s = 0; i < N; i++){ if(P[s][i]) {sub.push_back(i); s += w[i];} //deb(P[s][i]); } return sub; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:36:5: warning: unused variable 'ans' [-Wunused-variable]
  ll ans = DP(0,0);
     ^~~
#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...