Takahashi loves gold coins. He gains 1000 happiness points for each 500-yen coin he has and gains 5 happiness points for each 5-yen coin he has. (Yen is the currency of Japan.)
Takahashi has X yen. If he exchanges his money so that he will gain the most happiness points, how many happiness points will he earn?
(We assume that there are six kinds of coins available: 500-yen, 100-yen, 50-yen, 10-yen, 5-yen, and 1-yen coins.)

-----Constraints-----
 - 0 \leq X \leq 10^9
 - X is an integer.

-----Input-----
Input is given from Standard Input in the following format:
X

-----Output-----
Print the maximum number of happiness points that can be earned.

-----Sample Input-----
1024

-----Sample Output-----
2020

By exchanging his money so that he gets two 500-yen coins and four 5-yen coins, he gains 2020 happiness points, which is the maximum number of happiness points that can be earned.

Difficulty: introductory

Starter code:

Solutions:
x = int(input())
ans = 0

ans = x // 500 * 1000
x = x % 500
ans += x // 5 * 5

print(ans)

x = int(input())
a = x // 500
b = (x - a * 500) // 5
print(a * 1000 + b * 5)  

X=int(input())
ureshisa_500=(X//500)*1000
ureshisa_5=(X%500//5)*5

print(ureshisa_500+ureshisa_5)

X = int(input())

thousand = X // 500
rest = X - thousand * 500
five = rest // 5

print(1000 * thousand + 5 * five)

x = int(input())

joy_500 = (x//500) * 1000
joy_5 = ((x % 500)//5) * 5

print(joy_500 + joy_5)

x = int(input())

a = x // 500
x = x - a * 500
b = x // 5

print(1000*a+5*b)

X = int(input())

num_500 = X // 500
num_5 = (X - 500 * num_500) // 5

print(1000 * num_500 + 5 * num_5)

x = int(input())

print((x//500)*1000+((x-500*(x//500))//5)*5)

X = int(input())
a = X // 500
b = (X - 500*((X // 500))) // 5
print(a*1000 + b*5)

s=int(input())
a=s//500
s=s%500
b=s//5
print(1000*a+5*b)

# 高橋君は金色の硬貨が好きです。自分が持っている 500 円硬貨 1 枚につき 1000 、 5 円硬貨 1 枚につき 5 の 嬉しさ を得ます。
# 高橋君は X 円を持っています。これを高橋君の嬉しさが最大になるように両替したとき、高橋君の嬉しさはいくらになりますか？
# (なお、利用できる硬貨は 500 円玉、 100 円玉、 50 円玉、 10 円玉、 5 円玉、 1 円玉の 6 種類とします。)

X = int(input())
Y =  (X // 500) * 1000
Z = ((X % 500) // 5) * 5

if X < 500:
    print((X // 5) * 5)
else:
    print(Y + Z)

X = int(input())
ans, rem = divmod(X, 500)
ans *= 1000
ans += rem // 5 * 5
print(ans)


amount = int(input())
c500 = amount//500
r500 = amount%500
c5 = r500//5
print((c500*1000+c5*5))


x = int(input())

a = x//500*1000
b = x%500//5*5
print((a+b))


X = int(input())
y = X % 500

answer = (X // 500 * 1000 + y // 5 * 5)
print(answer)

x = int(input())

a = x // 500 *1000
x %= 500
b = x // 5 * 5
print(a + b)

x = int(input())

gold_coin = x // 500
left_coin = x % 500
bronze_coin = left_coin // 5

happiness = gold_coin * 1000 + bronze_coin * 5
print(happiness)

x = int(input())

ans = 0
ans += (x//500)*1000
x %= 500
ans += (x//5)*5

print(ans)

x = int(input())

a = x // 500
b = (x % 500) // 5

print((a * 1000 + b * 5))


x = int(input())
h500 = x // 500
h5 = (x%500) //5
print(h500 * 1000 + h5* 5)

X = int(input())
ans = (X // 500) * 1000 + ((X % 500) // 5) * 5
print(ans)

def atc_160b(X: int) -> int:
    return X // 500 * 1000 + X % 500 // 5 * 5


X_input = int(input())
print(atc_160b(X_input))

S =int(input())
joy_500 = (S // 500) * 1000
joy_5 = ((S-(joy_500 // 2)) // 5) * 5
print(joy_500+joy_5)

X = int(input())
A = X // 500
B = (X - A * 500) // 5
print(1000 * A + 5 * B)

x = int(input())
ans = (x // 500 * 1000) + (x % 500 // 5 * 5 )
print(ans)

X = int(input())
h1 = X // 500 * 1000
h2 = X % 500 // 5 * 5
print(h1+h2)

X = int(input())

gohyaku = X//500
go = (X-gohyaku*500)//5

print(gohyaku*1000+go*5)

x = int(input())
n500 = x // 500
n5 = (x % 500) // 5
print(n500 * 1000 + n5 * 5)

X=int(input())
ans=0
ans+=(X//500)*1000
X-=(X//500)*500
ans+=(X//5)*5
print(ans)

input_X = int(input())

result_500 = input_X // 500
result_500ureshi = result_500 * 1000
result_5ureshi = (input_X - result_500 * 500) // 5 * 5

result = int(result_500ureshi + result_5ureshi)
print(result)

X = int(input())

ans = X//500 * 1000
X %= 500

ans += X//5 * 5

print(ans)


X = int(input())

num_500 = X // 500
num_5 = (X % 500) // 5
grad = num_500 * 1000 + num_5 * 5
print(grad)


#from statistics import median
#import collections
#aa = collections.Counter(a) # list to list || .most_common(2)で最大の2個とりだせるお a[0][0]
from math import gcd
from itertools import combinations,permutations,accumulate, product # (string,3) 3回
#from collections import deque
from collections import deque,defaultdict,Counter
import decimal
import re
import math
import bisect
import heapq
#
#
#
# pythonで無理なときは、pypyでやると正解するかも！！
#
#
# my_round_int = lambda x:np.round((x*2 + 1)//2)
# 四捨五入g
#
# インデックス系
# int min_y = max(0, i - 2), max_y = min(h - 1, i + 2);
# int min_x = max(0, j - 2), max_x = min(w - 1, j + 2);
#
#
import sys
sys.setrecursionlimit(10000000)
mod = 10**9 + 7
#mod = 9982443453
#mod = 998244353
INF = float('inf')
from sys import stdin
readline = stdin.readline
def readInts():
  return list(map(int,readline().split()))
def readTuples():
    return tuple(map(int,readline().split()))
def I():
    return int(readline())
X = I()
m500 = X//500
rest = X - 500 * m500
print((m500 * 1000 + 5 * (rest//5)))


x = int(input())

thousand = x // 500
rest = x - thousand * 500
five = rest // 5

print(thousand * 1000 + five * 5)

X = int(input())

syou = int(X/500)
syou_second = int((X - syou*500)/5)
ans = syou*1000 + syou_second*5
print(ans)

def i_input(): return int(input())
def i_map(): return list(map(int, input().split()))
def i_list(): return list(map(int, input().split()))
def i_row(N): return [int(input()) for _ in range(N)]
def i_row_list(N): return [list(map(int, input().split())) for _ in range(N)]

X=i_input()
cnt500=X//500
cnt5=(X-cnt500*500)//5
print((cnt500*1000+cnt5*5))


x = int(input())
m = divmod(x, 500)

print(m[0] * 1000 + m[1] // 5 * 5)

happy = 0

money = int(input())

coin, money = divmod(money, 500)

happy += 1000*coin

coin, money = divmod(money, 5)

happy += 5*coin

print(happy)

x=int(input())
print(x//500*1000+x%500//5*5)

X=int(input())
answer=0


a=X//500
b=X-500*a
c=b//5

if a>=0 and c>=0:
  print((a*1000+c*5))
elif X%500==0:
  print((a*1000))
elif X < 500:
  print((c*5))
elif X==0:
  print((0))


X = int(input())

res = X // 500 * 1000
X %= 500
res += X // 5 * 5

print(res)


x=int(input())
total=0
total+=(x//500)
x-=total*500
total=total*1000
total+=(x//5)*5
print(total)

x = int(input())
p = x//500
ans = 1000*p
x = x%500
p = x//5
ans += p*5
print(ans)

X = int(input())

a = X // 500 * 1000
b = X % 500 // 5 * 5
print(a + b)

X = int(input())

a, mod = divmod(X, 500)
b = mod // 5

print((a * 1000 + b * 5))


X=int(input())
C=X//500
c=(X-X//500*500)//5
print(C*1000+c*5)

#ABC160
X = int(input())
happiness = 0
happiness += (X // 500)*1000
X = X % 500
happiness += (X // 5)*5
print(happiness)

X=int(input())
big=X//500
small=(X%500)//5
print(1000*big+5*small)

X = int(input())
yen500, yen5 = divmod(X, 500)
yen5 = yen5 // 5
print(yen500 * 1000 + yen5 * 5)

X = int(input())
count1000 = X // 500
count5 = X % 500 //5

print((count1000*1000 + count5*5))



x = int(input())

print(x//500*1000 + x%500//5*5)

n=int(input());print(n//500*1000+n%500//5*5)

def readinput():
    n=int(input())
    return n

def main(n):
    ureshii = (n // 500) * 1000
    n = n % 500
    ureshii += (n // 5) * 5
    return ureshii

def __starting_point():
    n=readinput()
    ans=main(n)
    print(ans)

__starting_point()

def main():
    x = int(input())
    f = x//500
    rest = x-f*500
    s = rest//5
    total =  f*1000 +s*5
    return total
    

def __starting_point():
    print(main())
__starting_point()


x=int(input())
k=0
s=0

if x//500>0:
    k=x//500
    s+=k*1000
    x=x-k*500
if x//5>0:
    k=x//5
    s+=k*5
    x=x-k*5
print(s)


x = int(input())
ans = 1000*(x // 500) + 5*((x % 500) // 5)
print(ans)

N = int(input())
happy = 0
if(N >= 500):
  happy = happy +  (int(N/500)*1000)
  N = N%500
if(N>=5):
  happy = happy + (int(N/5)*5)
  N = N%5
print(happy)

x=int(input())

h1=x//500
h2=(x%500)//5

print(h1*1000+h2*5)

x=int(input())
print(x//500*1000+x%500//5*5)

'''
問題：
    高橋君は金色の硬貨が好きです。
    自分が持っている 500円硬貨 1枚につき 1000、
    5円硬貨 1枚につき 5の嬉しさ を得ます。

    高橋君は X 円を持っています。
    これを高橋君の嬉しさが最大になるように両替したとき、高橋君の嬉しさはいくらになりますか？

    (なお、利用できる硬貨は 500 円玉、100 円玉、50 円玉、10 円玉、5円玉、1 円玉の 6 種類とします。)
'''

'''
    Xは整数
    0 ≦ X ≦ 1,000,000,000
'''
class A:
    def __init__(self, money, yorokobi):
        self.money = money
        self.yorokobi = yorokobi

    def calc_yorokobi(self, credit):    # credit ：残金を入力として受け取り、喜びを計算して返す
        return int(credit / self.money) * self.yorokobi

    # def print_self(self):
        # print(calc_yorokobi(self, credit))
# 
# def calc_yorokobi(input_money, x, yorokobi):
#     ret = input_money // x * yorokobi
#     return ret

# 標準入力から X の値を取得する
input_x = int(input())

yorokobi_500 = A(500, 1000)
yorokobi_5 = A(5, 5)

result = 0  # 結果格納用
if input_x >= 500:
    # print("1回目：{}".format(result))
    result += yorokobi_500.calc_yorokobi(input_x)   # 高橋500円の喜び
    # print("2回目：{}".format(result))
    result += yorokobi_5.calc_yorokobi(input_x % 500)   # 高橋5円の喜び
    # print("3回目：{}".format(result))
else:
    result += yorokobi_5.calc_yorokobi(input_x)

print(result)

# ret1 = input_x // 500  # 500円で割った商
# ret2 = ret1 * 1000  # 高橋君 500円の喜び
# ret3 = input_x - (ret1 * 500)   # X円から500円の枚数分を引いたお金
# ret4 = ret3 // 5 # （X円から500円の枚数分を引いたお金）÷ 5
# ret5 = ret4 * 5 # 高橋君 5円の喜び
# print(ret2 + ret5)


X = int(input())
 
thousand = X // 500
rest = X - thousand * 500
five = rest // 5
 
print((1000 * thousand + 5 * five))


X = int(input())
a = X//500
b = (X%500)//5
print(a*1000+b*5)

x=int(input())
print((x//500)*1000+((x-(x//500)*500)//5)*5)

X=int(input())
x=X//500
y=X%500//5
print((1000*x+5*y))


x = int(input())

thousand = x // 500
rest = x - thousand * 500
five = rest // 5

print((thousand * 1000 + five * 5))


X = int(input())
count = 0

kouka500 = X // 500 * 1000
count += kouka500

kouka5 = X % 500 // 5 * 5
count += kouka5

print(count)

n = int(input())
print((n // 500 * 1000 + n % 500 // 5 * 5))


X = int(input())
ans = 1000*(X//500)
X -= 500*(X//500)
ans += 5*(X//5)
print(ans)

num = int(input(""))
ans = 0

if num/500 > 0:
  ans+=int(num/500)*1000
  num = num%500

if num/5 > 0:
  ans+=int(num/5)*5
  num/=5

print(ans)

# 160 B
X = int(input())
h1000 = int(X/500)
h5 = int((X%500)/5)
print(h1000 * 1000 + h5*5)

x = int(input())
ans = (x // 500) * 1000
ans += (x % 500) // 5 * 5
print((str(ans)))


x = int(input())
print(x//500*1000 + x%500//5*5)

'''
問題：
    高橋君は金色の硬貨が好きです。
    自分が持っている 500円硬貨 1枚につき 1000、
    5円硬貨 1枚につき 5の嬉しさ を得ます。

    高橋君は X 円を持っています。
    これを高橋君の嬉しさが最大になるように両替したとき、高橋君の嬉しさはいくらになりますか？

    (なお、利用できる硬貨は 500 円玉、100 円玉、50 円玉、10 円玉、5円玉、1 円玉の 6 種類とします。)
'''

'''
    Xは整数
    0 ≦ X ≦ 1,000,000,000
'''
class Yorokobi:
    def __init__(self, money, yorokobi):
        self.money = money
        self.yorokobi = yorokobi

    def calc_yorokobi(self, credit):    # credit （残金？）を入力として受け取り、喜びを計算して返す
        return (credit // self.money) * self.yorokobi

# 標準入力から X の値を取得する
input_x = int(input())

yorokobi_500 = Yorokobi(500, 1000)
yorokobi_5 = Yorokobi(5, 5)

result = 0  # 結果格納用
if input_x >= 500:
    result += yorokobi_500.calc_yorokobi(input_x)   # 高橋君 500円の喜び
    result += yorokobi_5.calc_yorokobi(input_x % 500)   # 高橋君 5円の喜び
else:
    result += yorokobi_5.calc_yorokobi(input_x)

print(result)

# ret1 = input_x // 500  # 500円で割った商
# ret2 = ret1 * 1000  # 高橋君 500円の喜び
# ret3 = input_x - (ret1 * 500)   # X円から500円の枚数分を引いたお金
# ret4 = ret3 // 5 # （X円から500円の枚数分を引いたお金）÷ 5
# ret5 = ret4 * 5 # 高橋君 5円の喜び
# print(ret2 + ret5)


X = int(input())
happy = (X // 500) * 1000 + ((X % 500) // 5) * 5
print(happy)

x = int(input())
print(1000*(x//500)+5*((x-(500*(x//500)))//5))

x = int(input())
coins = [500, 5]

ans = 0

ans += (x // 500) * 1000
x = x % 500

ans += (x // 5) * 5

print(ans)


x = int(input())

print(x//500*1000 + x%500//5*5)

def resolve():
    x = int(input())
    ans = 0
    ans += x//500*1000
    ans += x%500//5*5
    print(ans)
resolve()

x = int(input())
c1 = x//500
x -= 500*c1
c2 = x//5
print(1000*c1 + 5*c2)

x = int(input())

g500 = x // 500
g5 = (x-g500*500)//5

print(g500 *1000 + g5 * 5)

x = int(input())
l = divmod(x,500)
m = l[0]
n = l[1]//5
print(1000*m+5*n)

n = int(input())
sum = 0
while n >= 500:
    n -= 500
    sum += 1000
while n >= 5:
    n -= 5
    sum += 5

print(sum)


x = int(input())
ans = 0
ans += x//500*1000
ans += (x%500)//5*5
print(ans)

X = int(input())

print((((X // 500) * 1000) + ((X % 500) // 5) * 5))


X=int(input())
a=X%500
to=X//500*1000+a//5*5
print(to)

cnt = int(input())

hp = 0
if cnt >= 500:
    hp += (1000 * (cnt // 500))
    cnt %= 500
hp += (5 * (cnt // 5))

print(hp)

'''
問題：
    高橋君は金色の硬貨が好きです。
    自分が持っている 500円硬貨 1枚につき 1000、
    5円硬貨 1枚につき 5の嬉しさ を得ます。

    高橋君は X 円を持っています。
    これを高橋君の嬉しさが最大になるように両替したとき、高橋君の嬉しさはいくらになりますか？

    (なお、利用できる硬貨は 500 円玉、100 円玉、50 円玉、10 円玉、5円玉、1 円玉の 6 種類とします。)
'''

'''
Xは整数
0 ≦ X ≦ 1,000,000,000
'''
# def calc

# 標準入力から X の値を取得する
input_x = int(input())

ret1 = input_x // 500  # 500円で割った商
ret2 = ret1 * 1000  # 高橋君 500円の喜び
ret3 = input_x - (ret1 * 500)   # X円から500円の枚数分を引いたお金
ret4 = ret3 // 5 # （X円から500円の枚数分を引いたお金）÷ 5
ret5 = ret4 * 5 # 高橋君 5円の喜び
print((ret2 + ret5))



X = int(input())

# 500円硬貨 1枚につき 1000、5円硬貨 1枚につき 5 の 嬉しさ を得ます。
# X円を持っています。嬉しさの最大値を出力せよ。

s = X // 500
a = X % 500
t = a // 5
print((s * 1000 + t * 5))



x = int(input())
a = x//500
x = x - (a*500)
b = x//5
print((a*1000 + b*5))


X = int(input())

# X円を、500で割り、余りを更に5で割る

happiness = ( X // 500 ) * 1000 + (( X % 500 ) // 5 ) * 5

print(happiness)

x = int(input())

def answer(x: int) -> int:
    ans = 1000 * (x // 500)
    x %= 500
    ans += 5 * ((x - 500 * (x // 500)) // 5)
    return ans

print(answer(x))

x = int(input())
print(x//500*1000+(x-x//500*500)//5*5)

x=int(input())
a=(x//500)*1000
b=((x%500)//5)*5
print(a+b)

X=int(input())
s=X//500
t=X%500
u=t//5

print((s*1000+u*5))


def __starting_point():

    x = int(input())
    
    ans = (x // 500)
    if ans > 0:
        x = x - (500 * ans)
        ans *= 1000
    
    ans += (x // 5) * 5
    print(ans)
__starting_point()

def main():
    x = int(input())
    a = x // 500
    b = (x - 500 * a) // 5
    ans = int(a * 1000 + b * 5)
    print(ans)


def __starting_point():
    main()

__starting_point()

X = int(input())
happy500 = X // 500
happy5 = (X - (happy500 * 500)) // 5
answer = happy500 * 1000 + happy5 * 5
print(answer)

d,m=divmod(int(input()),500);print(d*1000+m//5*5)

X = int(input())

five_hundread = X // 500
X -= five_hundread * 500

five = X // 5

print(1000 * five_hundread + 5 * five)

X = int(input())

a = X // 500
b = (X - a * 500) // 5
print(1000 * a + 5 * b)