fork download
  1. # your code goes here
  2. """
  3. from collections import defaultdict
  4. n = int(input())
  5. arr = list(map(int, input().split()))
  6.  
  7. def findMaxPoints(maxNum, numFreqMap, currNum, dpArr):
  8. if currNum <= 0:
  9. return 0
  10. if dpArr[currNum] != -1:
  11. return dpArr[currNum]
  12. dpArr[currNum] = max(
  13. (numFreqMap.get(currNum, 0) * currNum) + findMaxPoints(maxNum, numFreqMap, currNum - 2, dpArr),
  14. findMaxPoints(maxNum, numFreqMap, currNum - 1, dpArr)
  15. )
  16. return dpArr[currNum]
  17.  
  18. numFreqMap = defaultdict(int)
  19. maxNum = 0
  20. for i in arr:
  21. numFreqMap[i] += 1
  22. maxNum = max(maxNum, i)
  23. dpArr = [-1] * (maxNum + 1)
  24. print(findMaxPoints(maxNum, numFreqMap, maxNum, dpArr))
  25. """
Success #stdin #stdout 0.1s 14124KB
stdin
Standard input is empty
stdout
Standard output is empty