Submission #290759

#TimeUsernameProblemLanguageResultExecution timeMemory
290759REALITYNBDetecting Molecules (IOI16_molecules)C++14
9 / 100
1 ms256 KiB
#include <bits/stdc++.h> #define ll long long #define all(a) a.begin(),a.end() #define mp make_pair #define F first #define S second #define pii pair<int,int> using namespace std; vector<int> find_subset(int l , int r , vector<int> a){ sort(all(a)) ; ll sum= 0 ; for(int& x :a) sum+= x ; set<int> ans ; int n = a.size() ; for(int i=0;i<n;i++) ans.insert(i) ; vector<int> re ; set<pii> b ; for(int i=0;i<a.size();i++) b.insert(mp(a[i],i)) ; if(sum<l){ return re ; } if(sum<=l&&sum<=r){ for(int x : ans) re.push_back(x) ; return re ; } while(sum>r&&b.size()){ auto it = b.end() ; it-- ; pii w = *it ; if(sum-w.F>r){ sum-=w.F ; b.erase(it) ; ans.erase(w.S) ; } else if(sum-w.F<l){ b.erase(it) ; } else{ b.erase(it) ; ans.erase(w.S) ; sum-=w.F ; break ; } } if(sum>r) return re ; // cout << 1 << " " ; for(int x : ans) re.push_back(x) ; return re ; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:18:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |     for(int i=0;i<a.size();i++)  b.insert(mp(a[i],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...