output_description: Print the maximum value of f.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_1 a_2 ... a_N
attempt: 
  コンテスト時間: 2018-07-21(土) 21:00 ~ 2018-07-21(土) 22:40 (100分)AtCoderホームへ戻る
   トップ
   問題
   質問
   提出
   提出結果
   順位表
   バーチャル順位表
   コードテスト
   解説
  コードテスト
  言語
  
  ソースコード
  )
  1
  N = int(input())
  2
  a = list(map(int, input().split()))
  3
  a.sort(reverse=True)
  4
  ​
  5
  # ユークリッドの互除法により最大公約数を求める
  6
  ans = 0
  7
  val1, val2 = a[0], a[1]
  8
  while 1:
  9
    if val1 % val2 == 0:
  10
      ans = a[0]*a[1]/val2
  11
      break
  12
    else:
  13
      tmp = val2
  14
      val2 = val1 % val2
  15
      val1 = tmp
  16
  ​
  17
  for i in range(2, N):
  18
    val1, val2 = ans, a[i]
  19
    while 1:
  20
      if val1 % val2 == 0:
  21
        ans = ans*a[i]/val2
  22
        break
  23
      else:
  24
        tmp = val2
  25
        val2 = val1 % val2
  26
        val1 = tmp
  27
  ​
  28
  f_ans = 0
  29
  for i in range(N):
  30
    f_ans += (ans-1)%a[i]
  31
  print(int(f_ans))
  32
    
  33
        
  34
    
  ※ 512 KiB まで
  ※ ソースコードは「Main.拡張子」で保存されます
  
    
  標準入力
  7
  994 518 941 851 647 2 581
  ※ 512 KiB まで
  
  終了コード	0
  実行時間	17 ms
  メモリ	2964 KB
  標準出力
  4527
  
  標準エラー出力
  FacebookTwitterHatena共有
  ルール 用語集
  利用規約 プライバシーポリシー 個人情報保護方針 企業情報 よくある質問 お問い合わせ 資料請求
  Copyright Since 2012 ©AtCoder Inc. All rights reserved.
problem_description: Statement
  
  You are given N positive integers a_1, a_2, ..., a_N.
  
  For a non-negative integer m, let f(m) = (m\ mod\ a_1) + (m\ mod\ a_2) + ... +
  (m\ mod\ a_N).
  
  Here, X\ mod\ Y denotes the remainder of the division of X by Y.
  
  Find the maximum value of f.
samples: [{"input": "3\n    3 4 6", "output": "10\n    \n\nf(11) = (11\\ mod\\ 3) + (11\\ mod\\ 4) + (11\\ mod\\ 6) = 10 is the maximum value\nof f.\n\n* * *"}, {"input": "5\n    7 46 11 20 11", "output": "90\n    \n\n* * *"}, {"input": "7\n    994 518 941 851 647 2 581", "output": "4527"}]