# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
829159 | 1075508020060209tc | Kitchen (BOI19_kitchen) | C++14 | 91 ms | 92208 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#pragma GCC optimize("Ofast, no-stack-protector, unroll-loops")
#include <bits/stdc++.h>
using namespace std;
//#define int long long
int n;int m;int K;
int ar[510];
int br[510];
int dp[310][90010];
signed main()
{
cin>>n>>m>>K;
for(int i=1;i<=n;i++){
cin>>ar[i];
}
for(int i=1;i<=m;i++){
cin>>br[i];
}
int S=0;
for(int i=1;i<=n;i++){
if(ar[i]<K){cout<<"Impossible";return 0;}
S+=ar[i];
}
for(int i=0;i<m;i++){
for(int j=0;j<=90000;j++){
if(dp[i][j]==0&&i!=0){continue;}
dp[i+1][j]=max(dp[i+1][j],dp[i][j]);
int v=j+br[i+1];
if(v>90000){continue;}
dp[i+1][v]=max(dp[i+1][v],dp[i][j]+min(n,br[i+1]));
}
}
for(int i=S;i<=90000;i++){
if(dp[m][i]>=n*K){
cout<<i-S<<endl;return 0;
}
}
cout<<"Impossible";
}
컴파일 시 표준 에러 (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... |