BOJ 7579 앱

1 개요[ | ]

BOJ 7579 앱


2 C++[ | ]

#include <iostream>
using namespace std;

int N, M, sum;
int m[101];
int c[101];
int D[101][10001];

int solve() {
    for(int i=1; i<=N; i++){
        for(int x=0; x<=sum; x++){
            if(c[i] > x) {
                D[i][x] = D[i-1][x];
            } else {
                D[i][x] = max(D[i-1][x], D[i-1][x-c[i]]+m[i]);
            }
        }
    }
    for (int i=0; i<=sum; i++) {
		if (D[N][i] >= M) {
		    return i;
		}	
	}
	return -1;
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    
    cin >> N >> M;
    for(int i=1; i<=N; i++) {
        cin >> m[i];
    }
    for(int i=1; i<=N; i++) {
        cin >> c[i];
        sum += c[i];
    }
    cout << solve();
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}