2013年8月27日

UVa 10264 - The Most Potent Corner

#include <cstdio>

int main() {
  int n, num[16666], sum[16666];
  while (scanf("%d", &n) == 1) {
    for (int i = 0; i < (1 << n); i++) {
      scanf("%d", &num[i]);
    }
    for (int i = 0; i < (1 << n); i++) {
      sum[i] = 0;
      for (int j = 0; j < n; j++) {
        sum[i] += num[i ^ (1 << j)];
      }
    }
    int ans = 0;
    for (int i = 0; i < (1 << n); i++) {
      for (int j = 0; j < n; j++) {
        ans = sum[i] + sum[i ^ (1 << j)] > ans ? sum[i] + sum[i ^ (1 << j)] : ans;
      }
    }
    printf("%d\n", ans);
  }
  return 0;
}

沒有留言:

張貼留言