This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> find_subset(int l, int u, std::vector<int> w) {
bool n=false;bool ka=false;
int k = w.size();int f=l;l=u;vector<int> solution;
for(int i=0;i<k;i++)
{
if(w[i]==0&&min(f,l)==0)
{
solution.push_back(i);
n=true;
}
}
if(!n&&l!=0)
{
if(f==0)
f++;
int sum = l;
bool subset[k+1][sum+1];
for (int i = 0; i <= k; i++)
subset[i][0] = true;
for (int i = 1; i <= sum; i++)
subset[0][i] = false;
for (int i = 1; i <= k; i++)
{
for (int j = 1; j <= sum; j++)
{
if(j<w[i-1])
subset[i][j] = subset[i-1][j];
if (j >= w[i-1])
subset[i][j] = subset[i-1][j] ||
subset[i - 1][j-w[i-1]];
}
}
for (int j = f; j <= l; j++)
{
int lamda=j;
if(subset[k][j])
{
for(int i = k;i>=1;i--)
{
if(subset[i][lamda-w[i-1]]&&lamda-w[i-1]>=0)
{
solution.push_back(i-1);
lamda -= w[i-1];
ka=true;
if(lamda==0)
break;
}
}
}
if(ka)
break;
}
}
return solution;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |