From de5650a4375c1102572c8bb7a694e9c0068db29a Mon Sep 17 00:00:00 2001 From: Raphael McSinyx Date: Mon, 10 Oct 2016 10:55:59 +0700 Subject: Update /r/dailyprogrammer challenge #285 [Easy] --- daily/285easy/1dec.pas | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) (limited to 'daily/285easy/1dec.pas') diff --git a/daily/285easy/1dec.pas b/daily/285easy/1dec.pas index 734bd0f..a2599a9 100644 --- a/daily/285easy/1dec.pas +++ b/daily/285easy/1dec.pas @@ -2,8 +2,49 @@ var fi, fo: text; - + n, m, i, j: byte; + s: string[4]; + a: array[1 .. 4] of byte; begin + assign(fi, '1dec.inp'); + reset(fi); + assign(fo, '1dec.out'); + rewrite(fo); + repeat - read(f + read(fi, s[1]); + n := ord(s[1]) - 32; + if n mod 3 > 0 then + n := n div 3 + 1 + else + n := n div 3; + + for i := 1 to n do + begin + read(fi, s); + for j := 1 to 4 do + a[j] := ord(s[j]) - 32; + + m := a[1] * 4 + a[2] div 16; + if m = 0 then + break; + write(fo, chr(m)); + + m := a[2] mod 16 * 16 + a[3] div 4; + if m = 0 then + break; + write(fo, chr(m)); + + m := a[3] mod 4 * 64 + a[4]; + if m = 0 then + break; + write(fo, chr(m)); + end; + + readln(fi) + until eof(fi); + + close(fi); + close(fo) +end. -- cgit 1.4.1