답안 #267064

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
267064 2020-08-15T18:55:29 Z jairRS Detecting Molecules (IOI16_molecules) C++17
0 / 100
1000 ms 516 KB
#include "molecules.h"
#include <set>
#include <map>
using namespace std;

map<int, string> states;
map<string, set<int>> values;
int gw[200000];
int wsize;

set<int> go(string state = "", int sum = 0)
{
    if (state.size() == wsize)
    {
        states[sum] = state;
        set<int> res = {sum};
        return res;
    }

    set<int> res1 = go(state + "0", sum);
    set<int> res2 = go(state + "1", sum + gw[state.size()]);
    res1.insert(res2.begin(), res2.end());
    return res1;
}

std::vector<int> find_subset(int l, int u, std::vector<int> w)
{
    wsize = w.size();
    for (int i = 0; i < w.size(); i++)
    {
        gw[i] = w[i];
    }

    set<int> possible = go();
    int guess = *possible.lower_bound(l);
    if (guess <= u)
    {
        vector<int> res;
        string state = states[guess];
        for (int i = 0; i < w.size(); i++)
        {
            if (state[i] == '1')
                res.push_back(i);
        }
        return res;
    }
    else
    {
        return std::vector<int>(0);
    }
}

Compilation message

molecules.cpp: In function 'std::set<int> go(std::string, int)':
molecules.cpp:13:22: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   13 |     if (state.size() == wsize)
      |         ~~~~~~~~~~~~~^~~~~~~~
molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:29:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |     for (int i = 0; i < w.size(); i++)
      |                     ~~^~~~~~~~~~
molecules.cpp:40:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |         for (int i = 0; i < w.size(); i++)
      |                         ~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB OK (n = 1, answer = NO)
2 Correct 0 ms 256 KB OK (n = 1, answer = NO)
3 Correct 0 ms 384 KB OK (n = 1, answer = YES)
4 Correct 0 ms 256 KB OK (n = 2, answer = YES)
5 Correct 0 ms 384 KB OK (n = 2, answer = YES)
6 Correct 0 ms 256 KB OK (n = 3, answer = YES)
7 Correct 0 ms 256 KB OK (n = 3, answer = YES)
8 Correct 0 ms 256 KB OK (n = 3, answer = YES)
9 Correct 0 ms 256 KB OK (n = 3, answer = YES)
10 Correct 0 ms 384 KB OK (n = 3, answer = YES)
11 Correct 0 ms 256 KB OK (n = 3, answer = YES)
12 Correct 0 ms 256 KB OK (n = 3, answer = YES)
13 Correct 0 ms 256 KB OK (n = 3, answer = NO)
14 Correct 0 ms 256 KB OK (n = 3, answer = YES)
15 Correct 0 ms 256 KB OK (n = 3, answer = YES)
16 Correct 0 ms 256 KB OK (n = 3, answer = NO)
17 Correct 0 ms 256 KB OK (n = 3, answer = NO)
18 Execution timed out 1084 ms 516 KB Time limit exceeded
19 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 256 KB OK (n = 12, answer = YES)
2 Correct 1 ms 256 KB OK (n = 12, answer = YES)
3 Correct 2 ms 256 KB OK (n = 12, answer = NO)
4 Correct 1 ms 256 KB OK (n = 12, answer = NO)
5 Correct 1 ms 256 KB OK (n = 12, answer = YES)
6 Correct 2 ms 256 KB OK (n = 12, answer = YES)
7 Correct 2 ms 256 KB OK (n = 12, answer = YES)
8 Correct 2 ms 256 KB OK (n = 12, answer = YES)
9 Correct 0 ms 256 KB OK (n = 6, answer = YES)
10 Correct 1 ms 256 KB OK (n = 12, answer = YES)
11 Execution timed out 1095 ms 396 KB Time limit exceeded
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB OK (n = 1, answer = NO)
2 Correct 0 ms 256 KB OK (n = 1, answer = NO)
3 Correct 0 ms 384 KB OK (n = 1, answer = YES)
4 Correct 0 ms 256 KB OK (n = 2, answer = YES)
5 Correct 0 ms 384 KB OK (n = 2, answer = YES)
6 Correct 0 ms 256 KB OK (n = 3, answer = YES)
7 Correct 0 ms 256 KB OK (n = 3, answer = YES)
8 Correct 0 ms 256 KB OK (n = 3, answer = YES)
9 Correct 0 ms 256 KB OK (n = 3, answer = YES)
10 Correct 0 ms 384 KB OK (n = 3, answer = YES)
11 Correct 0 ms 256 KB OK (n = 3, answer = YES)
12 Correct 0 ms 256 KB OK (n = 3, answer = YES)
13 Correct 0 ms 256 KB OK (n = 3, answer = NO)
14 Correct 0 ms 256 KB OK (n = 3, answer = YES)
15 Correct 0 ms 256 KB OK (n = 3, answer = YES)
16 Correct 0 ms 256 KB OK (n = 3, answer = NO)
17 Correct 0 ms 256 KB OK (n = 3, answer = NO)
18 Execution timed out 1084 ms 516 KB Time limit exceeded
19 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB OK (n = 1, answer = NO)
2 Correct 0 ms 256 KB OK (n = 1, answer = NO)
3 Correct 0 ms 384 KB OK (n = 1, answer = YES)
4 Correct 0 ms 256 KB OK (n = 2, answer = YES)
5 Correct 0 ms 384 KB OK (n = 2, answer = YES)
6 Correct 0 ms 256 KB OK (n = 3, answer = YES)
7 Correct 0 ms 256 KB OK (n = 3, answer = YES)
8 Correct 0 ms 256 KB OK (n = 3, answer = YES)
9 Correct 0 ms 256 KB OK (n = 3, answer = YES)
10 Correct 0 ms 384 KB OK (n = 3, answer = YES)
11 Correct 0 ms 256 KB OK (n = 3, answer = YES)
12 Correct 0 ms 256 KB OK (n = 3, answer = YES)
13 Correct 0 ms 256 KB OK (n = 3, answer = NO)
14 Correct 0 ms 256 KB OK (n = 3, answer = YES)
15 Correct 0 ms 256 KB OK (n = 3, answer = YES)
16 Correct 0 ms 256 KB OK (n = 3, answer = NO)
17 Correct 0 ms 256 KB OK (n = 3, answer = NO)
18 Execution timed out 1084 ms 516 KB Time limit exceeded
19 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB OK (n = 1, answer = NO)
2 Correct 0 ms 256 KB OK (n = 1, answer = NO)
3 Correct 0 ms 384 KB OK (n = 1, answer = YES)
4 Correct 0 ms 256 KB OK (n = 2, answer = YES)
5 Correct 0 ms 384 KB OK (n = 2, answer = YES)
6 Correct 0 ms 256 KB OK (n = 3, answer = YES)
7 Correct 0 ms 256 KB OK (n = 3, answer = YES)
8 Correct 0 ms 256 KB OK (n = 3, answer = YES)
9 Correct 0 ms 256 KB OK (n = 3, answer = YES)
10 Correct 0 ms 384 KB OK (n = 3, answer = YES)
11 Correct 0 ms 256 KB OK (n = 3, answer = YES)
12 Correct 0 ms 256 KB OK (n = 3, answer = YES)
13 Correct 0 ms 256 KB OK (n = 3, answer = NO)
14 Correct 0 ms 256 KB OK (n = 3, answer = YES)
15 Correct 0 ms 256 KB OK (n = 3, answer = YES)
16 Correct 0 ms 256 KB OK (n = 3, answer = NO)
17 Correct 0 ms 256 KB OK (n = 3, answer = NO)
18 Execution timed out 1084 ms 516 KB Time limit exceeded
19 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB OK (n = 1, answer = NO)
2 Correct 0 ms 256 KB OK (n = 1, answer = NO)
3 Correct 0 ms 384 KB OK (n = 1, answer = YES)
4 Correct 0 ms 256 KB OK (n = 2, answer = YES)
5 Correct 0 ms 384 KB OK (n = 2, answer = YES)
6 Correct 0 ms 256 KB OK (n = 3, answer = YES)
7 Correct 0 ms 256 KB OK (n = 3, answer = YES)
8 Correct 0 ms 256 KB OK (n = 3, answer = YES)
9 Correct 0 ms 256 KB OK (n = 3, answer = YES)
10 Correct 0 ms 384 KB OK (n = 3, answer = YES)
11 Correct 0 ms 256 KB OK (n = 3, answer = YES)
12 Correct 0 ms 256 KB OK (n = 3, answer = YES)
13 Correct 0 ms 256 KB OK (n = 3, answer = NO)
14 Correct 0 ms 256 KB OK (n = 3, answer = YES)
15 Correct 0 ms 256 KB OK (n = 3, answer = YES)
16 Correct 0 ms 256 KB OK (n = 3, answer = NO)
17 Correct 0 ms 256 KB OK (n = 3, answer = NO)
18 Execution timed out 1084 ms 516 KB Time limit exceeded
19 Halted 0 ms 0 KB -