# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1264164 | vtnoo | Detecting Molecules (IOI16_molecules) | C++20 | 1094 ms | 12616 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;
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |