program ideone;
uses SysUtils;
var
c,d:integer;
t:string;
function zl(x:integer):string;
var
a: integer;
begin
a:= x mod 10;
if (x = 1) then
zl:= ' złoty'
else if ( (a >= 2) and (a <= 4) ) then
zl:= ' złote'
else
zl:= ' złotych';
end;
function Q(x:real; y:string):string;
var
j: array[0..9] of string = ('', ' jeden', ' dwa', ' trzy', ' cztery', ' pięć', ' sześć', ' siedem', ' osiem', ' dziewięć');
n: array[1..9] of string = (' jedenaście', ' dwanaście', ' trzynaście', ' czternaście', ' piętnaście', ' szesnaście', ' siedemnaście', ' osiemnaście', ' dziewiętnaście');
d: array[0..9] of string = ('', ' dziesięć', ' dwadzieścia', ' trzydzieści', ' czterdzieści', ' pięćdziesiąt', ' sześćdziesiąt', ' siedemdziesiąt', ' osiemdziesiąt', ' dziewięćdziesiąt');
s: array[0..9] of string = ('', ' sto', ' dwieście', ' trzysta', ' czterysta', ' pięćset', ' sześćset', ' siedemset', ' osiemset', ' dziewięćset');
gr: array[0..6,1..3] of string = (('' ,'' ,''),
(' tysiąc' ,' tysiące' ,' tysięcy'),
(' milion' ,' miliony' ,' milionów'),
(' miliard',' miliardy',' miliardów'),
(' bilion' ,' biliony' ,' bilionów'),
(' biliard',' biliardy',' biliardów'),
(' trylion',' tryliony',' trylionów'));
a: int64;
b: integer;
result: string = '';
n1,n2,n3: integer;
k,g: integer;
begin
a := trunc(x);
b := trunc(x*100) mod 100;
g := 0;
result := zl(a) + result;
while a>0 do
begin
n3 := trunc(a mod 1000 / 100);
n2 := trunc(a mod 100 / 10);
n1 := trunc(a mod 10);
if ((n1 = 1) or (n1+n2+n3 = 0)) then
k:=1
else if ((n1=2) or (n1=3) or (n1=4)) then
k:=2
else
k:=3;
result:= gr[g,k] + result;
if (n2 = 1) and (n1 > 0) then
result := n[n1] + result
else
begin
result := j[n1] + result;
result := d[n2] + result;
end;
result := s[n3] + result;
a := trunc(a/1000);
g := g+1;
end;
Q:=result;
end;
begin
t:=Q(1221212.45,'');
writeln(t);
end.
cHJvZ3JhbSBpZGVvbmU7CnVzZXMgU3lzVXRpbHM7CnZhcgogIGMsZDppbnRlZ2VyOwogIHQ6c3RyaW5nOwogICAgCiAgICBmdW5jdGlvbiB6bCh4OmludGVnZXIpOnN0cmluZzsKICAgIHZhcgogICAgCWE6IGludGVnZXI7CiAgICBiZWdpbgogICAgCWE6PSB4IG1vZCAxMDsKICAgIAkKICAgIAlpZiAoeCA9IDEpIHRoZW4KICAgIAkJemw6PSAnIHrFgm90eScKICAgIAllbHNlIGlmICggKGEgPj0gMikgYW5kIChhIDw9IDQpICkgdGhlbgogICAgCQl6bDo9ICcgesWCb3RlJwogICAgCWVsc2UKICAgIAkJemw6PSAnIHrFgm90eWNoJzsKICAgIGVuZDsKICAgIAogICAgZnVuY3Rpb24gUSh4OnJlYWw7IHk6c3RyaW5nKTpzdHJpbmc7CiAgICB2YXIKICAgIAlqOiBhcnJheVswLi45XSBvZiBzdHJpbmcgPSAoJycsICcgamVkZW4nLCAnIGR3YScsICcgdHJ6eScsICcgY3p0ZXJ5JywgJyBwacSZxIcnLCAnIHN6ZcWbxIcnLCAnIHNpZWRlbScsICcgb3NpZW0nLCAnIGR6aWV3acSZxIcnKTsKICAgIAluOiBhcnJheVsxLi45XSBvZiBzdHJpbmcgPSAoJyBqZWRlbmHFm2NpZScsICcgZHdhbmHFm2NpZScsICcgdHJ6eW5hxZtjaWUnLCAnIGN6dGVybmHFm2NpZScsICcgcGnEmXRuYcWbY2llJywgJyBzemVzbmHFm2NpZScsICcgc2llZGVtbmHFm2NpZScsICcgb3NpZW1uYcWbY2llJywgJyBkemlld2nEmXRuYcWbY2llJyk7CiAgICAJZDogYXJyYXlbMC4uOV0gb2Ygc3RyaW5nID0gKCcnLCAnIGR6aWVzacSZxIcnLCAnIGR3YWR6aWXFm2NpYScsICcgdHJ6eWR6aWXFm2NpJywgJyBjenRlcmR6aWXFm2NpJywgJyBwacSZxIdkemllc2nEhXQnLCAnIHN6ZcWbxIdkemllc2nEhXQnLCAnIHNpZWRlbWR6aWVzacSFdCcsICcgb3NpZW1kemllc2nEhXQnLCAnIGR6aWV3acSZxIdkemllc2nEhXQnKTsKICAgIAlzOiBhcnJheVswLi45XSBvZiBzdHJpbmcgPSAoJycsICcgc3RvJywgJyBkd2llxZtjaWUnLCAnIHRyenlzdGEnLCAnIGN6dGVyeXN0YScsICcgcGnEmcSHc2V0JywgJyBzemXFm8SHc2V0JywgJyBzaWVkZW1zZXQnLCAnIG9zaWVtc2V0JywgJyBkemlld2nEmcSHc2V0Jyk7CiAgICAJZ3I6IGFycmF5WzAuLjYsMS4uM10gb2Ygc3RyaW5nID0gKCgnJyAsJycgLCcnKSwKCQkJCQkJCQkJCSgnIHR5c2nEhWMnICwnIHR5c2nEhWNlJyAsJyB0eXNpxJljeScpLAoJCQkJCQkJCQkJKCcgbWlsaW9uJyAsJyBtaWxpb255JyAsJyBtaWxpb27Ds3cnKSwKCQkJCQkJCQkJCSgnIG1pbGlhcmQnLCcgbWlsaWFyZHknLCcgbWlsaWFyZMOzdycpLAoJCQkJCQkJCQkJKCcgYmlsaW9uJyAsJyBiaWxpb255JyAsJyBiaWxpb27Ds3cnKSwKCQkJCQkJCQkJCSgnIGJpbGlhcmQnLCcgYmlsaWFyZHknLCcgYmlsaWFyZMOzdycpLAoJCQkJCQkJCQkJKCcgdHJ5bGlvbicsJyB0cnlsaW9ueScsJyB0cnlsaW9uw7N3JykpOwogICAgCWE6IGludDY0OwogICAgCWI6IGludGVnZXI7CiAgICAJcmVzdWx0OiBzdHJpbmcgPSAnJzsKICAgIAluMSxuMixuMzogaW50ZWdlcjsKICAgIAlrLGc6IGludGVnZXI7CiAgICBiZWdpbgogICAgCWEgOj0gdHJ1bmMoeCk7CiAgICAJYiA6PSB0cnVuYyh4KjEwMCkgbW9kIDEwMDsKICAgIAlnIDo9IDA7CiAgICAJCiAgICAJcmVzdWx0IDo9IHpsKGEpICsgcmVzdWx0OwogICAgCQogICAgCXdoaWxlIGE+MCBkbwogICAgCWJlZ2luCgkgICAgCW4zIDo9IHRydW5jKGEgbW9kIDEwMDAgLyAxMDApOwoJICAgIAluMiA6PSB0cnVuYyhhIG1vZCAxMDAgLyAxMCk7CgkgICAgCW4xIDo9IHRydW5jKGEgbW9kIDEwKTsKCSAgICAJCgkgICAgCWlmICgobjEgPSAxKSBvciAobjErbjIrbjMgPSAwKSkgdGhlbgoJICAgIAkJazo9MQoJICAgIAllbHNlIGlmICgobjE9Mikgb3IgKG4xPTMpIG9yIChuMT00KSkgdGhlbgoJICAgIAkJazo9MgoJICAgIAllbHNlCgkgICAgCQlrOj0zOwoJICAgIAkJCgkgICAgCXJlc3VsdDo9IGdyW2csa10gKyByZXN1bHQ7CgkgICAgCQoJICAgIAlpZiAobjIgPSAxKSBhbmQgKG4xID4gMCkgdGhlbgoJICAgIAkJcmVzdWx0IDo9IG5bbjFdICsgcmVzdWx0CgkJCWVsc2UKCSAgICAJYmVnaW4KCSAgICAJICAgIHJlc3VsdCA6PSBqW24xXSArIHJlc3VsdDsKCSAgICAJICAgIHJlc3VsdCA6PSBkW24yXSArIHJlc3VsdDsKCSAgICAJZW5kOwoJICAgIAkgICAgCgkgICAgCXJlc3VsdCA6PSBzW24zXSArIHJlc3VsdDsKCSAgICAJCgkgICAgCQoJICAgIAkKCSAgICAJCgkgICAgCWEgOj0gdHJ1bmMoYS8xMDAwKTsKCSAgICAJZyA6PSBnKzE7CiAgICAJZW5kOwoKICAgICAgICBROj1yZXN1bHQ7CiAgICBlbmQ7CgpiZWdpbgogCnQ6PVEoMTIyMTIxMi40NSwnJyk7IAp3cml0ZWxuKHQpOyAKZW5kLg==