제출 #239254

#제출 시각아이디문제언어결과실행 시간메모리
239254urd05Detecting Molecules (IOI16_molecules)C++14
9 / 100
5 ms384 KiB
#include <bits/stdc++.h>
using namespace std;

bool dp[101][1001];

vector<int> find_subset(int l, int u,vector<int> w) {
    dp[0][0]=true;
    for(int i=0;i<w.size();i++) {
        int ind=i+1;
        for(int j=0;j<=u-w[i];j++) {
            dp[ind][j+w[i]]|=dp[ind-1][j];
            dp[ind][j]|=dp[ind-1][j];
        }
    }
    int n=w.size();
    int pos=-1;
    for(int i=l;i<=u;i++) {
        if (dp[n][i]) {
            pos=i;
        }
    }
    if (pos==-1) {
        vector<int> emp;
        return emp;
    }
    vector<int> ret;
    int sum=pos;
    for(int i=n-1;i>=0;i--) {
        if (sum>=w[i]&&dp[i][sum-w[i]]) {
            ret.push_back(i);
            sum-=w[i];
        }
    }
    return ret;
}

컴파일 시 표준 에러 (stderr) 메시지

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:8:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<w.size();i++) {
                 ~^~~~~~~~~
#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...