제출 #464470

#제출 시각아이디문제언어결과실행 시간메모리
464470osmanallazovKitchen (BOI19_kitchen)C++14
20 / 100
19 ms372 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int MAXN=300;
int a[MAXN+1],b[MAXN+1];
bool dp[MAXN*MAXN+1];
int main() {
    int i,n,m,k;
    cin>>n>>m>>k;
    int sum=0,suma=0;
    for(i=1;i<=n;i++){
        cin>>a[i];
        sum+=a[i]-(k-1);
        suma+=a[i];
    }
    if(*min_element(a+1,a+n+1)<k){
        cout<<"Impossible";
        return 0;
    }
    int sumb=0;
    for(i=1;i<=m;i++){
        cin>>b[i];
        sumb+=b[i];
    }
    sort(b+1,b+m+1);
    sum=min(sum,b[m]);
    dp[0]=i=1;
    while(i<=m && b[i]<=sum){
        for(int j=sumb;j>=b[i];j--) {
            dp[j]|=dp[j-b[i]];
        }
        i++;
    }
    i=suma;
    while(i<=sumb && dp[i]==0){
        i++;
    }
    if(i>sumb){
        cout<<"Impossible";
        return 0;
    }
    cout<<i-suma;
    return 0;
}

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

kitchen.cpp: In function 'int main()':
kitchen.cpp:27:12: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   27 |     dp[0]=i=1;
      |           ~^~
#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...