Submission #499391

#TimeUsernameProblemLanguageResultExecution timeMemory
499391LucaIlieDetecting Molecules (IOI16_molecules)C++17
100 / 100
47 ms7084 KiB
#include <iostream> #include <vector> #include <algorithm> #define MAX_N 200000 using namespace std; struct val_and_pos { int val, pos; bool operator < (const val_and_pos &a) const { return val < a.val; } }; long long sp[MAX_N + 1]; val_and_pos v[MAX_N + 1]; vector <int> find_subset( int lower, int upper, vector <int> w ) { int n, l, i, j; vector <int> ans; n = w.size(); for ( i = 1; i <= n; i++ ) v[i] = { w[i - 1], i - 1 }; sort( v, v + n + 1 ); for ( i = 1; i <= n; i++ ) sp[i] = sp[i - 1] + v[i].val; for ( l = 1; l <= n; l++ ) { if ( sp[l] <= upper && sp[n] - sp[n - l] >= lower ) { for ( i = l; i <= n; i++ ) { if ( lower <= sp[i] - sp[i - l] && sp[i] - sp[i - l] <= upper ) { for ( j = i - l + 1; j <= i; j++ ) ans.push_back( v[j].pos ); return ans; } } } } 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...