제출 #1351905

#제출 시각아이디문제언어결과실행 시간메모리
1351905bbbirosDetecting Molecules (IOI16_molecules)C++20
46 / 100
1095 ms5508 KiB
#include "molecules.h"
#include <unordered_map>
#include <iostream>
#include <algorithm>
using namespace std;
unordered_map<int, int> m;
vector<int> find_subset(int l, int u, vector<int> w)
{
    m[0] = -1;
    int ans = 0;
    vector<int> v={0};
    bool b=0;
    for(int i=0;i<w.size();i++)
    {
        vector<int> v1(0);
        for(int x:v)
        {
            if(x+w[i]>u)continue;
            if(m.count(x+w[i]))continue;
            m[x+w[i]]=i;
            v1.push_back(x+w[i]);
            if(x+w[i]>=l)
            {
                b=1;
                break;
            }
        }
        for(int x:v1)v.push_back(x);
        if(b)break;
    }
    for(int i=0;i<v.size();i++)
    {
        if(v[i]>=l)
        {
            ans=v[i];
        }
    }
    if (ans == 0)
        return {};
    vector<int> ansv;
    while (ans > 0)
    {
        ansv.push_back(m[ans]);
        ans -= w[ansv.back()];
    }
    reverse(ansv.begin(),ansv.end());
    return ansv;
}
#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...