#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void Main() { int N; cin >> N; vector A(N); for(int i = 0;i < N;i++) { cin >> A[i]; } vector> B(N,vector(N)); for(int i = 0;i < N;i++) { for(int j = 0;j < N;j++) { cin >> B[i][j]; } } long long ans = -1; int T = 0; for(int S = 1;S < 1 << N;S++) { long long cur = 0; for(int i = 0;i < N;i++) { if(S >> i & 1) { cur += A[i]; for(int j = i + 1;j < N;j++) { if(S >> j & 1) { cur += B[i][j]; } } } } if(cur > ans) { ans = cur; T = S; } } vector S; for(int i = 0;i < N;i++) { if(T >> i & 1) { S.push_back(i + 1); } } cout << ans << "\n"; for(int i = 0;i < (int)S.size();i++) { cout << S[i] << (i + 1 == (int)S.size() ? "\n":" "); } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int tt = 1; /* cin >> tt; */ while(tt--) Main(); }