Submission #1319082

#TimeUsernameProblemLanguageResultExecution timeMemory
1319082tkm_algorithmsDetecting Molecules (IOI16_molecules)C++20
0 / 100
0 ms332 KiB
#include <bits/stdc++.h> #include "molecules.h" using namespace std; using ll = long long; //#define int ll using P = pair<int, int>; #define all(x) x.begin(), x.end() #define rep(i, l, n) for (int i = l; i < (n); ++i) #define sz(x) (int)x.size() const char nl = '\n'; const int mod = 1e9+7; vector<int> find_subset(int l, int u, vector<int> w) { vector<P> nw; rep(i, 0, sz(w))nw.push_back(P(w[i], i)); sort(all(nw)); int sm = 0; vector<int> res; for (int i = sz(w)-1; i >= 0; --i) { sm += nw[i].first; res.push_back(nw[i].second); if (sm >= l)break; } vector<int> av; for (int i = sz(w)-sz(res)-1; i >= 0; --i)av.push_back(nw[i].second); if (sm < l || nw[0].first > u)return {}; if (sm >= l && sm <= u)return res; while (sm > u || sm < l) { sm -= w[res.front()]; res.erase(res.begin()); sm += w[av.back()]; res.push_back(av.back()); av.pop_back(); } if (sm >= l && sm <= u)return res; else return {}; } //int main() { //int n; cin >> n; //vector<int> w(n); //for (auto &i: w)cin >> i; //int l, u; cin >> l >> u; //vector<int> res = find_subset(l, u, w); //set<int> s; //for (auto i: res)s.insert(i); //int sm = 0; //for (auto i: res)sm += w[i]; //if (sz(s) == sz(res) && !res.empty() && sm >= l && sm <= u)cout << "YES" << nl; //else cout << "NO" << nl; //return 0; //}

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...