Submission #685709

#TimeUsernameProblemLanguageResultExecution timeMemory
685709BliznetcDetecting Molecules (IOI16_molecules)C++17
0 / 100
0 ms212 KiB
#include "molecules.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define sz size() #define all(x) x.begin(), x.end() #define F first #define S second typedef pair < int, int > pii; typedef vector < int > vi; typedef vector < vi > vvi; std::vector<int> find_subset(int l, int u, std::vector<int> w) { int n = w.size(); pair<int,int> a[n + 7]; int sum = 0; for (int i = 1; i <= n; i++) { a[i] = {w[i - 1], i}; sum += a[i].F; } sort (a + 1, a + n + 1); if (sum < l) { return vector<int> (0); } int r = u; if (a[1].F > u) { return vector<int>(0); } int cur = 0; vector<int> result; for (int i = 1; i <= n; i++) { if (cur + a[i].F >= l) { if (cur + a[i].F <= r) { cur += a[i].F; result.pb(a[i].S); } break; } cur += a[i].F; result.pb(a[i].S); } if (cur < l) { for (int i = 0; i < (int)result.size(); i++) { if (cur - a[i + 1].F + a[n].F <= r) { result[i] = a[n].S; break; } } } if (cur >= l && cur <= r) { return result; } return vector<int> (0); }
#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...