Submission #114596

#TimeUsernameProblemLanguageResultExecution timeMemory
114596davitmargDetecting Molecules (IOI16_molecules)C++17
46 / 100
78 ms896 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,p[10004]; int Main() { sort(all(a)); n = a.size(); for (int i = 1; i <= r; i++) { dp[i] = -mod; p[i] = -1; } p[0] = -1; for (int i = 0; i < a.size(); i++) for (int j = min(r,a[i].first*(i+1)); j >= a[i].first; j--) if (dp[j - a[i].first] + 1 > dp[j]) { dp[j] = dp[j - a[i].first] + 1; p[j] = i; } for (int i = l; i <= r; i++) if (dp[i] >= dp[st]) st = i; while (p[st] != -1) { ans.PB(a[p[st]].second); st -= a[p[st]].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:42: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...