Submission #162516

#TimeUsernameProblemLanguageResultExecution timeMemory
162516MohamedAhmed04Detecting Molecules (IOI16_molecules)C++14
31 / 100
969 ms65540 KiB
#include <bits/stdc++.h> #include "molecules.h" //#include "grader.cpp" using namespace std ; map< pair<int , long long> , bool>dp , vis; vector<int>arr ; int x , y , n; bool solve(int idx , int sum) { if(sum >= x && sum <= y) return 1 ; if(sum > y || idx == n) return 0 ; if(vis[{idx , sum}]) return dp[{idx , sum}] ; vis[{idx , sum}] = 1 ; dp[{idx , sum}] = solve(idx+1 , sum) ; if(dp[{idx , sum}] == 0) dp[{idx , sum}] = solve(idx+1 , sum + arr[idx]) ; return dp[{idx , sum}] ; } vector<int>v ; void build(int idx , int sum) { if(sum >= x && sum <= y) return ; if(solve(idx+1 , sum) == 1) build(idx+1 , sum) ; else { v.push_back(idx) ; build(idx+1 , sum + arr[idx]) ; } return ; } std::vector<int> find_subset(int l, int u, std::vector<int> w) { arr = w ; x = l , y = u ; n = arr.size() ; if(solve(0 , 0)) build(0 , 0) ; return v ; }
#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...