Submission #114593

#TimeUsernameProblemLanguageResultExecution timeMemory
114593davitmargDetecting Molecules (IOI16_molecules)C++17
0 / 100
3 ms1024 KiB
/*DavitMarg*/ #include <iostream> #include <algorithm> #include <cmath> #include <vector> #include <string> #include <cstring> #include <map> #include <set> #include <queue> #include <iomanip> #include <bitset> #include <stack> #include <cassert> #include <iterator> #include <ctype.h> #include <fstream> #define mod 1000000007ll #define LL long long #define LD long double #define MP make_pair #define PB push_back #define all(v) v.begin (),v.end() using namespace std; int l, r; int n; vector<pair<int,int>> a; vector<int> ans; int dp[10004],st; vector<int> p[10004]; int Main() { //sort(all(a)); n = a.size(); for (int i = 1; i <= r; i++) { dp[i] = -mod; p[i].PB(-1); } dp[0] = 0; p[0].PB(-1); for (int i = 0; i < a.size(); i++) for (int j = r; j >= a[i].first; j--) if (dp[j - a[i].first] + 1 >= dp[j]) { dp[j] = dp[j - a[i].first] + 1; p[j].PB(i); } for (int i = l; i <= r; i++) if (dp[i] > dp[st]) st = i; while (p[st].back() != -1) { while (!ans.empty() && p[st].back() >= ans.back()) p[st].pop_back(); ans.PB(a[p[st].back()].second); st -= a[p[st].back()].first; } sort(all(ans)); return 0; } vector<int> find_subset(int L, int R, vector<int> w) { l = L; r = R; while (!w.empty()) { a.PB(MP(w.back(), w.size() - 1)); w.pop_back(); } Main(); return ans; } #ifdef death int main() { int L, R,N; vector<int> W; cin >> N >> L >> R; for (int i = 0; i < N; i++) { W.PB(0); cin >> W.back(); } W=find_subset(L, R, W); cout << W.size() << endl; reverse(all(W)); while (!W.empty()) { cout << W.back() << " "; W.pop_back(); } cout << endl; return 0; } #endif /* */

Compilation message (stderr)

molecules.cpp: In function 'int Main()':
molecules.cpp:43:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < a.size(); i++)
                  ~~^~~~~~~~~~
#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...