1. 


/* Angewandte Mathematik, SS09, IFB 2C
* ACM Problem #147 (Dollars)
* Link: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=83
*
* @author Dennis Wilfert
* @author Johann Studt
* @version 1.0, 07/02/2009
*
* Status : Accepted
* Runtime: 0.804
*/
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;


public class Main {

public static void main(String[] args) throws NumberFormatException, IOException {

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
PrintWriter p = new PrintWriter(new BufferedOutputStream(System.out));
int[] coin = new int[]{10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10, 5};
// Betrag als Integerwert in cent
int amount;
// Betrag als Double-Wert in Dollar
double number;
// Kombinationsmöglichkeiten für die verschiedenen Beträge
long[] nway = new long[30001];
// Zahl als String
String string;
// Hilfsvariablen
int c, i, j;
nway[0] = 1;
// Sämtliche Kombinationen für alle Beträge von 0$ bis 300$ berechnen
for(i=0; i<coin.length; i++){
c = coin[i];
for(j = c; j<=30000; j++)
nway[j] += nway[j-c];
}
while(true){

string = reader.readLine();
// Betrag als double-Wert
number = Double.parseDouble(string);
if(number == 0)break;
// Betrag als int-Wert, aufgrund von Rundungsfehlern kann der Wert nicht von double in int umgewandelt werden
amount = Integer.parseInt(string.substring(0, string.indexOf('.'))+string.substring(string.indexOf('.')+1));

// Formatierte Augabe
p.printf("%6.2f %16d%n", number, nway[amount]);
}
p.flush();
}

}