結果
問題 |
No.733 分身並列コーディング
|
ユーザー |
|
提出日時 | 2020-02-12 00:14:01 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 577 bytes |
コンパイル時間 | 566 ms |
コンパイル使用メモリ | 70,272 KB |
実行使用メモリ | 10,496 KB |
最終ジャッジ日時 | 2024-10-01 13:01:00 |
合計ジャッジ時間 | 3,877 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 4 TLE * 1 -- * 41 |
コンパイルメッセージ
main.cpp:6:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type] 6 | main() | ^~~~
ソースコード
#include<iostream> #include<vector> using namespace std; int T,N,t[17],s[1<<17]; bool ok[1<<17]; main() { cin>>T>>N; for(int i=0;i<N;i++)cin>>t[i]; for(int i=0;i<1<<N;i++) { for(int j=0;j<N;j++)if(i>>j&1)s[i]+=t[j]; } vector<int>take; for(int i=1<<N;i--;) { if(s[i]>T)continue; bool flag=true; for(int x:take) { if((x&i)==i)flag=false; } if(flag)take.push_back(i); } ok[0]=true; for(int k=1;;k++) { for(int i=1<<N;i--;) { if(!ok[i])continue; for(int x:take)ok[i|x]=true; } if(ok[(1<<N)-1]) { cout<<k<<endl; return 0; } } }