Submission #778188

#TimeUsernameProblemLanguageResultExecution timeMemory
778188vjudge1Detecting Molecules (IOI16_molecules)C++17
100 / 100
43 ms6956 KiB
#include "molecules.h" #include <bits/stdc++.h> using namespace std; #define sp " " #define endl "\n" #define pb push_back #define pii pair<int, int> #define st first #define nd second #define ll long long vector<int> find_subset(int l, int u, vector<int> w){ vector<pii> v; int n = w.size(); vector<int> ans, vis(n, 0), zero; ll sum = 0; for (int i = 0; i < n; i++){ v.pb({w[i], i}); } sort(v.begin(), v.end()); int it = n - 1; while(sum <= u && it >= 0){ sum += v[it].st; vis[it] = 1; if (sum <= u && sum >= l){ for (int i = 0; i < n; i++){ if (vis[i]) ans.pb(v[i].nd); } return ans; } it--; } if (it < 0) return ans; //cout<<sum<<endl; int i = 0, j = n - 1; while(sum > u && i <= it && j > it){ vis[j] = 0, vis[i] = 1; sum += v[i].st - v[j].st; i++, j--; // cout<<sum<<endl; } if (sum <= u && sum >= l){ for (int i = 0; i < n; i++){ if (vis[i]) ans.pb(v[i].nd); } } return ans; }
#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...