結果
問題 | No.50 おもちゃ箱 |
ユーザー |
![]() |
提出日時 | 2015-05-22 12:31:54 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 967 bytes |
コンパイル時間 | 883 ms |
コンパイル使用メモリ | 65,852 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-09 16:32:50 |
合計ジャッジ時間 | 2,090 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 36 WA * 2 |
ソースコード
#include<iostream> #include<vector> #include<algorithm> using namespace std; vector<int>sorted; vector<int>work; vector<int> box,item; int res=11; int N,M; void check(int sz){ for(auto &it:work){ sorted.push_back(it); } sort(sorted.begin(),sorted.end()); reverse(sorted.begin(),sorted.end()); bool f=true; for(auto i=0;i<sz;i++){ if(sorted[i]>box[i])f=false; } if(f)res=sz; sorted.clear(); } void func(int n,int sz){ if(sz>=res)return; if(n==N){ check(sz); return; } for(int i=0;i<sz;i++){ work[i]+=item[n]; func(n+1,sz); work[i]-=item[n]; } work.push_back(item[n]); func(n+1,sz+1); work.pop_back(); } int main(){ sorted.reserve(10); work.reserve(10); cin>>N; for (int i=0;i<N;i++){ int x; cin>>x; item.push_back(x); } cin>>M; for (int i=0;i<M;i++){ int x; cin>>x; box.push_back(x); } sort(box.begin(),box.end()); reverse(box.begin(),box.end()); func(0,0); if(res>=11)cout<<-1<<endl; else cout<<res<<endl; }