Submission #974377

#TimeUsernameProblemLanguageResultExecution timeMemory
974377tamir1Detecting Molecules (IOI16_molecules)C++17
0 / 100
1 ms348 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> find_subset(int l, int u, vector<int> w) {
	vector<int> ans={};
	int n=w.size(),sum=0,m,k,p,x=0;
	for(int i=0;i<n;i++) sum+=w[i];
	if(sum<l) return ans;
	sort(w.begin(),w.end());
	sum=0;
	for(int i=0;i<n;i++){
		if(sum+w[i]>u) break;
		sum+=w[i];
		m=i+1;
	}
	k=n-1;
	p=0;
	while(sum<l){
		if(k<m || p==m) break;
		x++;
		sum+=w[k];
		sum-=w[p];
		k--;
		p++;
	}
	if(sum<l) return {};
	for(int i=x;i<m;i++) ans.push_back(w[i]);
	for(int i=n-1;i>=n-x;i--) ans.push_back(w[i]);
    return ans;
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:20:14: warning: 'm' may be used uninitialized in this function [-Wmaybe-uninitialized]
   20 |   if(k<m || p==m) break;
      |             ~^~~
#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...