Submission #1264164

#TimeUsernameProblemLanguageResultExecution timeMemory
1264164vtnooDetecting Molecules (IOI16_molecules)C++20
46 / 100
1094 ms12616 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAXN=10001;
bitset<MAXN> dp[MAXN];

std::vector<int> find_subset(int l, int u, std::vector<int> w){
    int n=w.size();
    dp[0][0]=true;
    for(int i=1;i<=n;i++){
        dp[i]=dp[i-1]|(dp[i-1]<<w[i-1]);
    }
    int x=-1, y=x;
    for(int i=1;i<=n;i++){
        for(int j=l;j<=u;j++){
            if(dp[i][j]){
                x=i;
                y=j;
                break;
            }
        }
        if(x!=-1)break;
    }
    if(x==-1)return {}; 
    vector<int> a;
    while(x>0){
        if(dp[x-1][y]){
            x--;
        }else if(y-w[x-1]>=0&&dp[x-1][y-w[x-1]]){
            a.push_back(x-1);
            y-=w[x-1];
            x--;
        }
    }
    return a;
}

Compilation message (stderr)

molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...