제출 #582382

#제출 시각아이디문제언어결과실행 시간메모리
582382drdilyorDetecting Molecules (IOI16_molecules)C++17
0 / 100
1 ms212 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/detail/standard_policies.hpp> #define allit(a) (a).begin(), (a).end() #define sz(a) ((int) (a).size()) #define cut(s) {cout << s << '\n'; return 0;} #include "molecules.h" using namespace std; using ll = long long; using vi = vector<int>; namespace pd = __gnu_pbds; template<typename K> using ordered_set = pd::tree<K, pd::null_type, less<K>, pd::rb_tree_tag, pd::tree_order_statistics_node_update>; template<typename... T> using hash_table = pd::gp_hash_table<T...>; const int INF = 1e9; const ll INFL = 1e18; const int N = 1e5; const int RANDOM = chrono::high_resolution_clock::now().time_since_epoch().count(); mt19937 rng(RANDOM); vi find_subset(int l, int u, vi w) { int n = w.size(); int mx = 0, mn = INF; for (int i = 0; i < n; i++) { mn = min(mn, w[i]); mx = max(mx, w[i]); } vi pref(n), suff(n); pref.front() = w.front(); suff.back() = w.back(); for (int i = 1; i < n; i++) { pref[i] = w[i] + pref[i-1]; } for (int i = n-2; i >= 0; i--) { suff[i] = w[i] + suff[i+1]; } vi res1, res2(n); for (int i = 0; i < n; i++) res2[i] = i+1; for (int i = 0; i < n; i++) { res1.push_back(i+1); if (l <= pref[i] && pref[i] <= u) return res1; if (l <= suff[i] && suff[i] <= u) return res2; res2.pop_back(); } return {}; }
#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...