Submission #64423

#TimeUsernameProblemLanguageResultExecution timeMemory
64423mhndDetecting Molecules (IOI16_molecules)C++14
100 / 100
106 ms22356 KiB
#include "molecules.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef unsigned long long ull;
const int N = 3e5+50;
const ll oo = 1e18;
const ll mod = 1e9+7;

vector<int> find_subset(int l, int u, vector<int> w) {
	vector<pair<int,int>> v;
	for(int i=0;i<w.size();i++)v.push_back({w[i],i});
	sort(v.begin(),v.end());
	ll sum=0;
	int p = 0;
	vector<int> ans;
	for(int i=0;i<v.size();i++){
		sum+=v[i].first;
		while(p < v.size() && sum > u)sum -= v[p++].first;
		if(sum >= l && sum <= u){
			for(int x=p;x<=i;x++)ans.push_back(v[x].second);
			break;
		}
	}
    return ans;
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:14:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<w.size();i++)v.push_back({w[i],i});
              ~^~~~~~~~~
molecules.cpp:19:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<v.size();i++){
              ~^~~~~~~~~
molecules.cpp:21:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while(p < v.size() && sum > u)sum -= v[p++].first;
         ~~^~~~~~~~~~
#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...