# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
8010 | paulsohn | 앱 (KOI13_app) | C++98 | 0 ms | 4996 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <stdio.h>
int N, M, m[100] = { 0 }, c[100] = { 0 };
int maxmem[100][10001] = { 0 };
int main(){
int totalc = 0, minc;
scanf("%d %d", &N, &M);
for (int i = 0; i < N; ++i){
scanf("%d", &m[i]);
}
for (int i = 0; i < N; ++i){
scanf("%d", &c[i]);
totalc += c[i];
}
maxmem[0][c[0]] = m[0];
for (int i = 1; i < N; ++i){
for (int cost = 0; cost <= totalc; ++cost){
int used=0, unused;
if (cost>c[i] && maxmem[i - 1][cost - c[i]]){
used = maxmem[i - 1][cost - c[i]] + m[i];
}
else if (cost == c[i]){
if(used < m[i])
used=m[i];
}
unused = maxmem[i-1][cost];
maxmem[i][cost] = (used > unused ? used : unused);
}
}
for (minc = 0; minc <= totalc; ++minc){
if (maxmem[N - 1][minc] >= M) break;
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |