# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
567118 | almothana05 | Kitchen (BOI19_kitchen) | C++14 | 15 ms | 1080 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define mod 1000000007
#define inf 100000000000000000
using namespace std;
vector<int>num, chef , pow2;
pair<int ,int>mask[40000];
int sub[400][300 * 400];
void im(){
cout << "Impossible\n";
}
string bi(int x){
string cmp;
while(x){
if(x % 2 == 0){
cmp += '0';
}
else{
cmp += '1';
}
x /= 2;
}
return cmp;
}
int main(){
// ios_base::sync_with_stdio(false);
// cin.tie(NULL);
for(int i = 1; i < 1000000 ; i *= 2){
pow2.push_back(i);
}
int menge, numm , nummer , koch , mini , re = 0 , rechner = 0;
cin >> menge >> koch >> mini;
if(koch < mini){
im();
return 0;
}
for(int i = 0 ; i < menge ; i++){
cin >> numm;
re += numm;
num.push_back(numm);
if(numm < mini){
im();
return 0;
}
}
for(int i = 0 ; i < koch ; i++){
cin >> numm;
rechner += numm;
chef.push_back(numm);
}
///////////////////////////////////////////////////////////////////////////////////////////
// if(mini == 1){
// sub[0][0] = 1;
// for(int i = 0 ; i < koch ; i++){
// for(int j = 0 ; j <= 300 * 300 ; j++){
// if(sub[i][j] == 1){
// sub[i + 1][j] = 1;
// sub[i + 1][j + num[i]] = 1;
// }
// }
// }
// int erg = -1;
// for(int i = rechner - re ; i >= 0 ; i--){
// if(sub[koch][i] == 1){
// erg = rechner - re - i;
// break;
// }
// }
// if(erg == -1){
// im();
// return 0;
// }
// else{
// cout << erg << "\n";
// }
// return 0;
// }
mask[0] = {menge * mini , re};
string s;
for(int i = 1 ; i < pow2[koch] ; i++){
s = bi(i);
for(int j = 0 ; j < s.size() ; j++){
if(s[j] == '1'){
mask[i] = mask[i - pow2[j]];
mask[i].first -= min(menge , chef[j]);
mask[i].second -= chef[j];
}
}
}
int erg = mod;
for(int i = 0 ; i < pow2[koch] ; i++){
if(mask[i].first <= 0 && mask[i].second <= 0){
erg = min(erg , -mask[i].second);
}
}
if(erg == mod){
im();
return 0;
}
assert(erg>= 0);
cout << erg << "\n";
}
컴파일 시 표준 에러 (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... |