# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
299361 | oscarsierra12 | Detecting Molecules (IOI16_molecules) | C++14 | 1 ms | 384 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std ;
vector <pair<int,int>> wr ;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
vector <int> ans, ot ;
if ( *min_element (w.begin(), w.end()) > u ) return std::vector<int>(0) ;
for ( int i = 0 ; i < w.size() ; ++i ) {
wr.push_back ( {w[i], i} ) ;
if ( w[i] >= l && w[i] <= u ) {
ans.push_back ( i+1 ) ;
return ans ;
}
}
long long s = 0 ;
int sz = w.size() ;
sort ( wr.begin(), wr.end() ) ;
for ( int i = 0 ; i < sz ; ++i ) {
s += wr[i].first ;
if ( s >= l ) {
if ( s <= u ) {
sort ( ans.begin(), ans.end() ) ;
return ans ;
}
s -= wr[i].first ;
int s2 = 0 ;
for ( int j = sz - 1 ; j >= sz - i ; --j ) s2 += wr[i].first ;
if ( s2 < l ) return std::vector <int> (0) ;
for ( int j = sz - 1 ; j >= sz - i ; --j ) {
s -= wr[ans.back()-1].first ;
s += wr[i].first ;
ans.pop_back() ;
ot.push_back (wr[j].second + 1) ;
if ( s >= l && s <= u ) {
for ( auto i:ot ) ans.push_back ( i ) ;
sort ( ans.begin(), ans.end() ) ;
return ans ;
}
}
break ;
}
ans.push_back ( wr[i].second + 1 ) ;
}
return std::vector <int>(0) ;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |