結果
| 問題 |
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':' ');
}