Submission #160004

#TimeUsernameProblemLanguageResultExecution timeMemory
160004BertedDetecting Molecules (IOI16_molecules)C++14
100 / 100
81 ms8424 KiB
#include "molecules.h"
#include <iostream>
#include <algorithm>
#define ll long long
#define pii pair<ll,ll>
#define fst first
#define snd second
#define pub push_back
using namespace std;
vector<pii> dt;
vector<int> rs;
vector<int> find_subset(int l, int u, vector<int> w) {
	dt.push_back({0,-1});
    for (int i=0;i<w.size();i++) {dt.push_back({w[i],i});}
    sort(dt.begin(),dt.end());
    if (dt.back().fst>=l)
    {
    	auto it = lower_bound(dt.begin(),dt.end(),make_pair((ll)l,(ll)0));
    	if (it->fst <= u) {rs.push_back(it->snd);}
    }
    else
    {
    	for (int i=1;i<=w.size();i++)
    	{
    		dt[i].fst += dt[i-1].fst;
    	}
    	for (int i=0;i<=w.size();i++)
    	{
    		auto it = lower_bound(dt.begin(),dt.end(),make_pair(l+dt[i].fst,(ll)0));
    		if (it!=dt.end())
    		{
    			if (it->fst <= u + dt[i].fst)
	    		{
	    			int idx = it - dt.begin();
	    			for (int j=i+1;j<=idx;j++)
	    			{
	    				rs.push_back(dt[j].snd);
	    			}
	    			break;
	    		}
    		}
    		else {break;}
    	}	
    }
	return rs;
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:14:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0;i<w.size();i++) {dt.push_back({w[i],i});}
                  ~^~~~~~~~~
molecules.cpp:23:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for (int i=1;i<=w.size();i++)
                   ~^~~~~~~~~~
molecules.cpp:27:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for (int i=0;i<=w.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...