Submission #165434

#TimeUsernameProblemLanguageResultExecution timeMemory
165434SegtreeDetecting Molecules (IOI16_molecules)C++14
100 / 100
164 ms21436 KiB
#include<iostream> #include<algorithm> #include<vector> #include<unordered_map> #include"molecules.h" using namespace std; typedef long long ll; vector<int> ans; unordered_map<int,vector<int> >mas; void exch(){ for(int i=0;i<ans.size();i++){ ll x=ans[i]; ans[i]=mas[x].back(); mas[x].pop_back(); } } vector<int> find_subset(int l,int r,vector<int> w){ int n=w.size(); for(int i=0;i<n;i++){ mas[w[i]].push_back(i); } sort(w.begin(),w.end()); ll suml=0,sumr=0,x=-1; for(int i=0;i<n;i++){ suml+=w[i]; sumr+=w[n-1-i]; if(suml<=r&&l<=sumr){ x=i+1; break; } } if(x==-1)return ans; for(int i=0;i<x;i++)ans.push_back(w[i]); if(l<=suml&&suml<=r){ exch(); return ans; } for(int i=x-1;i>=0;i--){ suml-=ans[i]; suml+=w[n-x+i]; ans[i]=w[n-x+i]; if(l<=suml&&suml<=r){ exch(); return ans; } } cout<<1/0<<endl; return ans; }

Compilation message (stderr)

molecules.cpp: In function 'void exch()':
molecules.cpp:11:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<ans.size();i++){
                 ~^~~~~~~~~~~
molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:47:12: warning: division by zero [-Wdiv-by-zero]
     cout<<1/0<<endl;
           ~^~
#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...