結果
問題 | No.1360 [Zelkova 4th Tune] 協和音 |
ユーザー |
![]() |
提出日時 | 2021-07-15 15:30:55 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 109 ms / 2,000 ms |
コード長 | 866 bytes |
コンパイル時間 | 135 ms |
コンパイル使用メモリ | 30,720 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-04 15:42:18 |
合計ジャッジ時間 | 5,071 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 47 |
ソースコード
#include<stdio.h> int main() { int n; scanf("%d", &n); int i, j, k; long long int a[22]; for (i = 0; i < n; i++) scanf("%lld", &a[i]); long long int b[22][22]; for (i = 0; i < n; i++) for (j = 0; j < n; j++) scanf("%lld", &b[i][j]); long long int ans_w = a[0], ans_k = 1; long long int max = 1, w; for (i = 0; i < n; i++) max *= 2; int v[22]; for (k = 1; k < max; k++) { for (i = 0, j = k; i < n; i++, j /= 2) v[i] = j % 2; w = 0; for (i = 0; i < n; i++) if (v[i] > 0) w += a[i]; for (i = 0; i < n; i++) for (j = i; j < n; j++) if (v[i] * v[j] > 0) w += b[i][j]; if (w > ans_w) { ans_w = w; ans_k = k; } } printf("%lld\n", ans_w); for (i = 0; i < n; i++, ans_k /= 2) { if (ans_k % 2 > 0) { printf("%d", i + 1); if (ans_k > 1) printf(" "); else printf("\n"); } } return 0; }