제출 #889158

#제출 시각아이디문제언어결과실행 시간메모리
889158Muhammad_AneeqDetecting Molecules (IOI16_molecules)C++17
100 / 100
161 ms27284 KiB
#include <vector> #include <set> #include <algorithm> #include <map> using namespace std; vector<int> find_subset(int l,int u,vector<int>w) { long long sum=0; multiset<long long>ind; vector<long long>f={begin(w),end(w)}; for (auto i:f) sum+=i; if (sum<l) return {}; sum=0; sort(begin(w),end(w)); multiset<long long>s; long long pre=0; for (long long i=0;i<w.size();i++) { sum+=w[i]; s.insert(sum); ind.insert(i); if (sum<l) continue; if (sum>=l&&sum<=u) break; auto z=s.upper_bound(sum-l); if (z==s.begin()) continue; z--; auto g=begin(s); while (*g!=*z) { s.erase(s.find(*begin(s))); ind.erase(ind.find(*begin(ind))); g=begin(s); } pre=*begin(s); s.erase(s.find(*begin(s))); ind.erase(ind.find(*begin(ind))); if (sum-pre>=l&&sum-pre<=u) break; } if (s.size()==0||*(--end(s))<l+pre||*(--end(s))>u+pre) return {}; vector<int>ans; map<long long,vector<long long>>d; for (long long i=0;i<f.size();i++) d[f[i]].push_back(i); for (auto i:ind) { ans.push_back(d[w[i]].back()); d[w[i]].pop_back(); } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:20:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |  for (long long i=0;i<w.size();i++)
      |                     ~^~~~~~~~~
molecules.cpp:50:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |  for (long long i=0;i<f.size();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...