Submission #62609

# Submission time Handle Problem Language Result Execution time Memory
62609 2018-07-29T10:36:14 Z Eae02 Detecting Molecules (IOI16_molecules) C++14
9 / 100
5 ms 664 KB
#include "molecules.h"

#include <bits/stdc++.h>
#define all(x) x.begin(),x.end()

struct Item
{
	int weight;
	int index;
	
	bool operator<(const Item& other) const
	{ return weight < other.weight; }
};

std::vector<int> find_subset(int l, int u, std::vector<int> w)
{
	std::vector<Item> items(w.size());
	for (int i = 0; i < w.size(); i++)
	{
		items[i].weight = w[i];
		items[i].index = i;
	}
	
	std::sort(all(items));
	
	std::vector<int> indices;
	auto itemsEnd = items.end();
	
	while (true)
	{
		auto begIt = std::lower_bound(items.begin(), itemsEnd, Item { l, 0 });
		auto endIt = std::lower_bound(items.begin(), itemsEnd, Item { u, 0 });
		
		if (begIt != itemsEnd && begIt->weight >= l && begIt->weight <= u)
		{
			indices.push_back(begIt->index);
			return indices;
		}
		
		if (begIt == items.begin())
		{
			return {};
		}
		
		itemsEnd = begIt - 1;
		indices.push_back(itemsEnd->index);
		l -= itemsEnd->weight;
		u -= itemsEnd->weight;
	}
}

Compilation message

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:18:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < w.size(); i++)
                  ~~^~~~~~~~~~
molecules.cpp:32:8: warning: variable 'endIt' set but not used [-Wunused-but-set-variable]
   auto endIt = std::lower_bound(items.begin(), itemsEnd, Item { u, 0 });
        ^~~~~
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB OK (n = 1, answer = NO)
2 Correct 2 ms 492 KB OK (n = 1, answer = NO)
3 Correct 4 ms 492 KB OK (n = 1, answer = YES)
4 Correct 4 ms 508 KB OK (n = 2, answer = YES)
5 Correct 2 ms 508 KB OK (n = 2, answer = YES)
6 Correct 3 ms 508 KB OK (n = 3, answer = YES)
7 Correct 3 ms 508 KB OK (n = 3, answer = YES)
8 Correct 3 ms 508 KB OK (n = 3, answer = YES)
9 Correct 4 ms 516 KB OK (n = 3, answer = YES)
10 Correct 4 ms 664 KB OK (n = 3, answer = YES)
11 Correct 3 ms 664 KB OK (n = 3, answer = YES)
12 Correct 3 ms 664 KB OK (n = 3, answer = YES)
13 Correct 3 ms 664 KB OK (n = 3, answer = NO)
14 Correct 3 ms 664 KB OK (n = 3, answer = YES)
15 Correct 4 ms 664 KB OK (n = 3, answer = YES)
16 Correct 3 ms 664 KB OK (n = 3, answer = NO)
17 Correct 3 ms 664 KB OK (n = 3, answer = NO)
18 Correct 3 ms 664 KB OK (n = 100, answer = NO)
19 Correct 5 ms 664 KB OK (n = 100, answer = YES)
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 664 KB Contestant can not find answer, jury can
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB OK (n = 1, answer = NO)
2 Correct 2 ms 492 KB OK (n = 1, answer = NO)
3 Correct 4 ms 492 KB OK (n = 1, answer = YES)
4 Correct 4 ms 508 KB OK (n = 2, answer = YES)
5 Correct 2 ms 508 KB OK (n = 2, answer = YES)
6 Correct 3 ms 508 KB OK (n = 3, answer = YES)
7 Correct 3 ms 508 KB OK (n = 3, answer = YES)
8 Correct 3 ms 508 KB OK (n = 3, answer = YES)
9 Correct 4 ms 516 KB OK (n = 3, answer = YES)
10 Correct 4 ms 664 KB OK (n = 3, answer = YES)
11 Correct 3 ms 664 KB OK (n = 3, answer = YES)
12 Correct 3 ms 664 KB OK (n = 3, answer = YES)
13 Correct 3 ms 664 KB OK (n = 3, answer = NO)
14 Correct 3 ms 664 KB OK (n = 3, answer = YES)
15 Correct 4 ms 664 KB OK (n = 3, answer = YES)
16 Correct 3 ms 664 KB OK (n = 3, answer = NO)
17 Correct 3 ms 664 KB OK (n = 3, answer = NO)
18 Correct 3 ms 664 KB OK (n = 100, answer = NO)
19 Correct 5 ms 664 KB OK (n = 100, answer = YES)
20 Incorrect 3 ms 664 KB Contestant can not find answer, jury can
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB OK (n = 1, answer = NO)
2 Correct 2 ms 492 KB OK (n = 1, answer = NO)
3 Correct 4 ms 492 KB OK (n = 1, answer = YES)
4 Correct 4 ms 508 KB OK (n = 2, answer = YES)
5 Correct 2 ms 508 KB OK (n = 2, answer = YES)
6 Correct 3 ms 508 KB OK (n = 3, answer = YES)
7 Correct 3 ms 508 KB OK (n = 3, answer = YES)
8 Correct 3 ms 508 KB OK (n = 3, answer = YES)
9 Correct 4 ms 516 KB OK (n = 3, answer = YES)
10 Correct 4 ms 664 KB OK (n = 3, answer = YES)
11 Correct 3 ms 664 KB OK (n = 3, answer = YES)
12 Correct 3 ms 664 KB OK (n = 3, answer = YES)
13 Correct 3 ms 664 KB OK (n = 3, answer = NO)
14 Correct 3 ms 664 KB OK (n = 3, answer = YES)
15 Correct 4 ms 664 KB OK (n = 3, answer = YES)
16 Correct 3 ms 664 KB OK (n = 3, answer = NO)
17 Correct 3 ms 664 KB OK (n = 3, answer = NO)
18 Correct 3 ms 664 KB OK (n = 100, answer = NO)
19 Correct 5 ms 664 KB OK (n = 100, answer = YES)
20 Incorrect 3 ms 664 KB Contestant can not find answer, jury can
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB OK (n = 1, answer = NO)
2 Correct 2 ms 492 KB OK (n = 1, answer = NO)
3 Correct 4 ms 492 KB OK (n = 1, answer = YES)
4 Correct 4 ms 508 KB OK (n = 2, answer = YES)
5 Correct 2 ms 508 KB OK (n = 2, answer = YES)
6 Correct 3 ms 508 KB OK (n = 3, answer = YES)
7 Correct 3 ms 508 KB OK (n = 3, answer = YES)
8 Correct 3 ms 508 KB OK (n = 3, answer = YES)
9 Correct 4 ms 516 KB OK (n = 3, answer = YES)
10 Correct 4 ms 664 KB OK (n = 3, answer = YES)
11 Correct 3 ms 664 KB OK (n = 3, answer = YES)
12 Correct 3 ms 664 KB OK (n = 3, answer = YES)
13 Correct 3 ms 664 KB OK (n = 3, answer = NO)
14 Correct 3 ms 664 KB OK (n = 3, answer = YES)
15 Correct 4 ms 664 KB OK (n = 3, answer = YES)
16 Correct 3 ms 664 KB OK (n = 3, answer = NO)
17 Correct 3 ms 664 KB OK (n = 3, answer = NO)
18 Correct 3 ms 664 KB OK (n = 100, answer = NO)
19 Correct 5 ms 664 KB OK (n = 100, answer = YES)
20 Incorrect 3 ms 664 KB Contestant can not find answer, jury can
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB OK (n = 1, answer = NO)
2 Correct 2 ms 492 KB OK (n = 1, answer = NO)
3 Correct 4 ms 492 KB OK (n = 1, answer = YES)
4 Correct 4 ms 508 KB OK (n = 2, answer = YES)
5 Correct 2 ms 508 KB OK (n = 2, answer = YES)
6 Correct 3 ms 508 KB OK (n = 3, answer = YES)
7 Correct 3 ms 508 KB OK (n = 3, answer = YES)
8 Correct 3 ms 508 KB OK (n = 3, answer = YES)
9 Correct 4 ms 516 KB OK (n = 3, answer = YES)
10 Correct 4 ms 664 KB OK (n = 3, answer = YES)
11 Correct 3 ms 664 KB OK (n = 3, answer = YES)
12 Correct 3 ms 664 KB OK (n = 3, answer = YES)
13 Correct 3 ms 664 KB OK (n = 3, answer = NO)
14 Correct 3 ms 664 KB OK (n = 3, answer = YES)
15 Correct 4 ms 664 KB OK (n = 3, answer = YES)
16 Correct 3 ms 664 KB OK (n = 3, answer = NO)
17 Correct 3 ms 664 KB OK (n = 3, answer = NO)
18 Correct 3 ms 664 KB OK (n = 100, answer = NO)
19 Correct 5 ms 664 KB OK (n = 100, answer = YES)
20 Incorrect 3 ms 664 KB Contestant can not find answer, jury can
21 Halted 0 ms 0 KB -