結果
問題 |
No.1360 [Zelkova 4th Tune] 協和音
|
ユーザー |
|
提出日時 | 2022-07-19 14:45:46 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 57 ms / 2,000 ms |
コード長 | 828 bytes |
コンパイル時間 | 1,387 ms |
コンパイル使用メモリ | 134,124 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-01 17:04:44 |
合計ジャッジ時間 | 6,155 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 47 |
ソースコード
#include<iostream> #include<vector> #include<algorithm> #include<cmath> #include<string> #include<iomanip> #include<numeric> #include<queue> #include<deque> #include<stack> #include<set> #include<map> #include<random> using namespace std; typedef long long ll; const int mod=998244353; int main(){ int n,a[18],b[18][18]; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>b[i][j]; int ans=-1; ll mx=-1; for(int S=1;S<1<<n;S++){ ll tmp=0; for(int i=0;i<n;i++){ if(S>>i&1){ tmp+=a[i]; for(int j=i+1;j<n;j++) if(S>>j&1) tmp+=b[i][j]; } } if(mx<tmp){ mx=tmp; ans=S; } } vector<int>vec; for(int i=0;i<n;i++) if(ans>>i&1) vec.push_back(i); cout<<mx<<endl; for(int i=0;i<vec.size();i++) cout<<vec[i]+1<<(i+1==vec.size()?'\n':' '); }