# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
288845 | 2020-09-02T01:20:15 Z | Basilhijaz | Detecting Molecules (IOI16_molecules) | C++17 | 1 ms | 384 KB |
#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]]; 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
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 256 KB | OK (n = 1, answer = NO) |
2 | Correct | 1 ms | 256 KB | OK (n = 1, answer = NO) |
3 | Incorrect | 0 ms | 256 KB | Contestant can not find answer, jury can |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | OK (n = 12, answer = YES) |
2 | Correct | 1 ms | 384 KB | OK (n = 12, answer = YES) |
3 | Correct | 1 ms | 384 KB | OK (n = 12, answer = NO) |
4 | Correct | 1 ms | 384 KB | OK (n = 12, answer = NO) |
5 | Incorrect | 1 ms | 384 KB | Contestant can not find answer, jury can |
6 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 256 KB | OK (n = 1, answer = NO) |
2 | Correct | 1 ms | 256 KB | OK (n = 1, answer = NO) |
3 | Incorrect | 0 ms | 256 KB | Contestant can not find answer, jury can |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 256 KB | OK (n = 1, answer = NO) |
2 | Correct | 1 ms | 256 KB | OK (n = 1, answer = NO) |
3 | Incorrect | 0 ms | 256 KB | Contestant can not find answer, jury can |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 256 KB | OK (n = 1, answer = NO) |
2 | Correct | 1 ms | 256 KB | OK (n = 1, answer = NO) |
3 | Incorrect | 0 ms | 256 KB | Contestant can not find answer, jury can |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 256 KB | OK (n = 1, answer = NO) |
2 | Correct | 1 ms | 256 KB | OK (n = 1, answer = NO) |
3 | Incorrect | 0 ms | 256 KB | Contestant can not find answer, jury can |
4 | Halted | 0 ms | 0 KB | - |