Submission #1187033

#TimeUsernameProblemLanguageResultExecution timeMemory
1187033GoBananas69Detecting Molecules (IOI16_molecules)C++20
31 / 100
1095 ms1092 KiB
#include <algorithm> #include <iostream> #include <vector> using namespace std; typedef long long ll; vector<int> find_subset(int l, int u, vector<int> w) { int n = (int)w.size(); if (n == 0) return {}; int sum = 0; for (int &i : w) sum += i; vector<bool> dp(sum + 1, false); vector<int> prev(sum + 1, -1); dp[0] = true; for (int i = 0; i < n; ++i) { int wi = w[i]; for (int j = sum; j >= wi; --j) { if (!dp[j] && dp[j - wi]) { dp[j] = true; prev[j] = i; } } } for (int s = l; s <= u && s <= sum; ++s) { if (dp[s]) { vector<int> res; int curr = s; while (curr > 0) { int i = prev[curr]; res.push_back(i); curr -= w[i]; } return res; } } return {}; } // signed main() { // cin.tie(0)->sync_with_stdio(0); // vector<int> res = find_subset(15, 17, {8, 7}); // for (int &i: res) { // cout << i << ' '; // } // }

Compilation message (stderr)

molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...