AtCoder Grand Contest
作者:
大瓜娃子
,
2022-02-23 08:59:33
,
所有人可见
,
阅读 252
AtCoder Grand Contest1
1
def solve():
#不难证明答案为排序后的所有奇数项之和。
n = int(input())
a = list(map(int,input().split()))
a.sort()
ans = sum(i for i in a[0::2])
print(ans)
solve()
2
'''
观察 模拟 手玩
https://blog.csdn.net/liufengwei1/article/details/109541100
a = n -x
b = x
且规定 a>=b
每次三角形的边长都是短边的边长 然后2次反射后长度就会减少一个b
总共就走减少a/b次长度
'''
def calc(a,b):
if a < b:
a,b = b,a
n = a // b
if a % b == 0:
return b * (2 * n - 1)
else:
return calc(b,a%b) + 2*b*n
def main():
n,x = map(int,input().split())
ans = n + calc(x,n-x)
print(ans)
main()