#include <cstdio>

int w[] = { 2, 3, 5, 10, 12, 15 };
int v[] = { 380, 550, 850, 1520, 1870, 2244 };
int n = 6;
#define M 50
#define INF 10000000
#define min(x, y) ((x) < (y) ? (x) : (y))
int dp[M+10];

int main()
{
	for (int i = 0; i <= M; ++i) dp[i] = INF;
	for (int i = 0; i < n; ++i) dp[w[i]] = v[i];

	for (int i = 6; i <= M; ++i)
		for (int j = 0; j < n; ++j)
			for (int k = 1; k * w[j] <= i; ++k)
				dp[i] = min(dp[i], dp[i-k*w[j]] + k*v[j]);

	int m;
	while (scanf("%d", &m), m) printf("%d\n", dp[m/100]);
	return 0;
}