Submission #819472

#TimeUsernameProblemLanguageResultExecution timeMemory
819472GangstaDetecting Molecules (IOI16_molecules)C++14
100 / 100
44 ms5692 KiB
/* ID: didarco1 LANG: C++17 TASK: */ // a >> b = a / pow(2,b) // a << b = a * pow(2,b) #include <bits/stdc++.h> #define ll long long int #define pb push_back #define sz size() #define ss second #define ff first #define N 200001 #define pii pair<int,int> using namespace std; //ll _, x, n; vector<int> find_subset(int l, int u, vector<int> w){ vector<int> result; vector<pii> a; int n = w.sz, l1 = 0, r1 = 0; bool tr = 0; ll sum = 0; a.pb({0,0}); for(int i = 0; i < n; i++) a.pb({w[i],i}); sort(a.begin(), a.end()); // cout << l1 << ' ' << r1 << ' ' << sum << ' ' << a[l1].ff << ' ' << a[r1].ff << '\n'; while(l1 <= n or r1 <= n){ if(r1 == n and sum < l) break; if(l1 == r1 and sum > u){ sum -= a[l1].ff; l1++; r1++; sum += a[r1].ff; continue; } if(sum < l and r1 < n) r1++, sum += a[r1].ff; else if(sum > u and l1 < n){ sum -= a[l1].ff; l1++; } else if(sum >= l and sum <= u){ tr = 1; break; } } if(tr){ if(l1 == 0) l1++; // cout << l1 << ' ' << r1 << '\n'; for(int i = l1; i <= r1; i++) result.pb(a[i].ss); sort(result.begin(), result.end()); } return result; } //int main(){ // int l, u, n; // cin >> n >> l >> u; // vector <int> w; // w.resize(n); // for(int i = 0; i < n; i++){ // cin >> w[i]; // } // for(auto i : find_subset(l,u,w)) cout << i << ' '; //}
#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...