Submission #114701

#TimeUsernameProblemLanguageResultExecution timeMemory
114701davitmargDetecting Molecules (IOI16_molecules)C++17
100 / 100
65 ms6640 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; LL ll, rr; int n; vector<pair<LL, LL>> a; vector<int> ans; LL l,r,sum,mx; int Main() { sort(all(a)); l = r = 0; sum = a[r].first; while (l < n) { if (r < l) { r = l; sum = a[r].first; } while (r + 1 < n && sum + a[r + 1].first <= rr) { r++; sum += a[r].first; } if (sum >= ll && sum <= rr) mx = max(mx, r - l + 1); sum -= a[l].first; l++; } l = r = 0; sum = a[r].first; while (l < n) { if (r < l) { r = l; sum = a[r].first; } while (r + 1 < n && sum + a[r + 1].first <= rr) { r++; sum += a[r].first; } if (sum >= ll && sum<=rr && r - l + 1 == mx) { for (int i = l; i <= r; i++) ans.PB(a[i].second); break; } sum -= a[l].first; l++; } sort(all(ans)); return 0; } vector<int> find_subset(int L, int R, vector<int> w) { ll = L; rr = R; n = w.size(); 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 /* */
#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...