結果
問題 | No.698 ペアでチームを作ろう |
ユーザー | McGregorsh |
提出日時 | 2023-07-05 22:01:14 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 302 ms / 1,000 ms |
コード長 | 1,652 bytes |
コンパイル時間 | 554 ms |
コンパイル使用メモリ | 87,332 KB |
実行使用メモリ | 92,308 KB |
最終ジャッジ日時 | 2023-09-26 22:36:45 |
合計ジャッジ時間 | 6,443 ms |
ジャッジサーバーID (参考情報) |
judge14 / judge15 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 216 ms
90,140 KB |
testcase_01 | AC | 229 ms
90,280 KB |
testcase_02 | AC | 235 ms
91,500 KB |
testcase_03 | AC | 217 ms
90,164 KB |
testcase_04 | AC | 251 ms
92,308 KB |
testcase_05 | AC | 275 ms
91,892 KB |
testcase_06 | AC | 292 ms
92,012 KB |
testcase_07 | AC | 279 ms
91,820 KB |
testcase_08 | AC | 276 ms
92,008 KB |
testcase_09 | AC | 284 ms
92,008 KB |
testcase_10 | AC | 286 ms
91,800 KB |
testcase_11 | AC | 292 ms
91,788 KB |
testcase_12 | AC | 288 ms
91,780 KB |
testcase_13 | AC | 302 ms
91,988 KB |
testcase_14 | AC | 288 ms
92,136 KB |
ソースコード
import sys from sys import stdin from fractions import Fraction import math from math import ceil, floor, sqrt, pi, factorial, gcd from copy import deepcopy from collections import Counter, deque, defaultdict from heapq import heapify, heappop, heappush from itertools import accumulate, product, combinations, combinations_with_replacement, permutations from bisect import bisect, bisect_left, bisect_right from functools import reduce, lru_cache from decimal import Decimal, getcontext, ROUND_HALF_UP def i_input(): return int(stdin.readline()) def i_map(): return map(int, stdin.readline().split()) def i_list(): return list(i_map()) def s_input(): return stdin.readline()[:-1] def s_map(): return s_input().split() def s_list(): return list(s_map()) def lcm(a, b): return a * b // gcd(a, b) def get_distance(x1, y1, x2, y2): d = sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) return d def rotate(table): n_fild = [] for x in zip(*table[::-1]): n_fild.append(x) return n_fild sys.setrecursionlimit(10 ** 7) INF = float('inf') MOD = 10 ** 9 + 7 MOD2 = 998244353 alpa = 'abcdefghijklmnopqrstuvwxyz' ALPA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' def main(): N = int(input()) A = i_list() dp = [0] * (2**N) for i in range(2**N): flag = format(i, 'b').zfill(N)[::-1] for j in range(N-1): p = 2 ** j for k in range(j+1, N): pp = 2 ** k if flag[j] == '0' and flag[k] == '0': cost = A[j] ^ A[k] nxt = p | pp | i dp[nxt] = max(dp[nxt], dp[i] + cost) print(dp[-1]) if __name__ == '__main__': main()