結果
問題 | No.698 ペアでチームを作ろう |
ユーザー | McGregorsh |
提出日時 | 2023-07-05 22:01:14 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 194 ms / 1,000 ms |
コード長 | 1,652 bytes |
コンパイル時間 | 302 ms |
コンパイル使用メモリ | 82,372 KB |
実行使用メモリ | 90,016 KB |
最終ジャッジ日時 | 2024-07-19 16:22:19 |
合計ジャッジ時間 | 3,986 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 122 ms
88,416 KB |
testcase_01 | AC | 128 ms
88,272 KB |
testcase_02 | AC | 168 ms
89,356 KB |
testcase_03 | AC | 118 ms
88,592 KB |
testcase_04 | AC | 161 ms
89,652 KB |
testcase_05 | AC | 186 ms
89,336 KB |
testcase_06 | AC | 188 ms
89,748 KB |
testcase_07 | AC | 189 ms
89,124 KB |
testcase_08 | AC | 180 ms
90,016 KB |
testcase_09 | AC | 179 ms
89,740 KB |
testcase_10 | AC | 180 ms
89,124 KB |
testcase_11 | AC | 179 ms
89,636 KB |
testcase_12 | AC | 181 ms
89,668 KB |
testcase_13 | AC | 184 ms
89,724 KB |
testcase_14 | AC | 194 ms
89,588 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()