1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | (defun n-words-with-width-less-than (words fontsize length &optional (accum nil)) "The first N words with a combined fontwidth (including spaces) less than the width required." (if (<= (* fontsize (+ (length accum) ;;Add the spaces. -1 ;;Minus one, since the last word needs no space after it. (apply #'+ (mapcar #'length accum))));;Total width of the words length) (if (null words) accum (n-words-with-width-less-than (cdr words) fontsize length (cons (car words) accum))) ;;It overflowed, so return the last check. (Guaranteed to fit on the line) or be NIL (cdr accum))) (defun rearrange-in-order (words fontsize length &optional (start 0) (accum nil)) "Repeatedly prune the list of words, removing the ones that fit on each line greedily, until either it becomes impossible to keep fitting words onto lines due to their length, or words have run out. Guaranteed to have the shortest possible height, due to its greediness." (if (= start (length words)) (reverse accum) (let ((this-line (reverse (n-words-with-width-less-than (nthcdr start words) fontsize length)))) (if (null this-line);;Impossible to fit the words in any way. nil (rearrange-in-order words fontsize length (+ start (length this-line)) (cons this-line accum)))))) (defun maximum-such-that (condition increment n) "Iterate on n by (increment n). Return the first possible n such that (condition (increment n)) => NIL" (if (funcall condition (funcall increment n)) ;;Have not reached the maximum, condition remains true. (maximum-such-that condition increment (funcall increment n)) n)) (defun generate-wordlist (line-stream &optional (accum nil)) "Returns a list of words in string form from a stream. Reads until EOF." (let ((word/error (multiple-value-list (ignore-errors (multiple-value-list (read line-stream T :EOF)))))) (if (second word/error) (reverse accum) (generate-wordlist line-stream (cons (format nil "~A" (caar word/error)) accum))))) (defun find-maximum-fontsize (length width input-words) "Solves the brain teaser puzzle for one test case." (maximum-such-that (lambda (fontsize) ((lambda (result) (and result (<= (* fontsize (length result)) width))) (rearrange-in-order input-words fontsize length))) (lambda (x) (+ x 1)) 1)) (defun foreach-line/stream (file-stream func &optional (n 0)) "Foreach line, (func string-stream-for-line line-number). Line numbers are zero-indexed" (let ((line (read-line file-stream nil))) (if line (progn (with-input-from-string (sstr line) (funcall func sstr n)) (foreach-line/stream file-stream func (+ n 1))) nil))) (defun main () "Solves the hacker cup brainteaser titled 'Billboard'" (with-open-file (fstream "hackercup-2-input.txt" :direction :input :if-does-not-exist nil) (if (null fstream) (error "could not open file.") (progn (read-line fstream) (foreach-line/stream fstream (lambda (line-stream n) (format T "Case #~a: ~A~%" (+ n 1) (find-maximum-fontsize (or (read line-stream nil) 0) (or (read line-stream nil) 0) (generate-wordlist line-stream))))))))) |
KGRlZnVuIG4td29yZHMtd2l0aC13aWR0aC1sZXNzLXRoYW4gKHdvcmRzIGZvbnRzaXplIGxlbmd0aCAmb3B0aW9uYWwgKGFjY3VtIG5pbCkpCiAgIlRoZSBmaXJzdCBOIHdvcmRzIHdpdGggYSBjb21iaW5lZCBmb250d2lkdGggKGluY2x1ZGluZyBzcGFjZXMpIGxlc3MgdGhhbiB0aGUgd2lkdGggcmVxdWlyZWQuIgogIChpZiAoPD0gKCogZm9udHNpemUKICAgICAgICAgICAgICgrIChsZW5ndGggYWNjdW0pIDs7QWRkIHRoZSBzcGFjZXMuCiAgICAgICAgICAgICAgICAtMSA7O01pbnVzIG9uZSwgc2luY2UgdGhlIGxhc3Qgd29yZCBuZWVkcyBubyBzcGFjZSBhZnRlciBpdC4KICAgICAgICAgICAgICAgIChhcHBseSAjJysgKG1hcGNhciAjJ2xlbmd0aCBhY2N1bSkpKSk7O1RvdGFsIHdpZHRoIG9mIHRoZSB3b3JkcwogICAgICAgICAgbGVuZ3RoKQogICAgICAoaWYgKG51bGwgd29yZHMpIGFjY3VtCiAgICAgICAgICAobi13b3Jkcy13aXRoLXdpZHRoLWxlc3MtdGhhbiAoY2RyIHdvcmRzKSBmb250c2l6ZSBsZW5ndGggKGNvbnMgKGNhciB3b3JkcykgYWNjdW0pKSkKICAgICAgOztJdCBvdmVyZmxvd2VkLCBzbyByZXR1cm4gdGhlIGxhc3QgY2hlY2suIChHdWFyYW50ZWVkIHRvIGZpdCBvbiB0aGUgbGluZSkgb3IgYmUgTklMCiAgICAgIChjZHIgYWNjdW0pKSkKIAooZGVmdW4gcmVhcnJhbmdlLWluLW9yZGVyICh3b3JkcyBmb250c2l6ZSBsZW5ndGggJm9wdGlvbmFsIChzdGFydCAwKSAoYWNjdW0gbmlsKSkKICAiUmVwZWF0ZWRseSBwcnVuZSB0aGUgbGlzdCBvZiB3b3JkcywgcmVtb3ZpbmcgdGhlIG9uZXMgdGhhdCBmaXQgb24KIGVhY2ggbGluZSBncmVlZGlseSwgdW50aWwgZWl0aGVyIGl0IGJlY29tZXMgaW1wb3NzaWJsZSB0byBrZWVwCiBmaXR0aW5nIHdvcmRzIG9udG8gbGluZXMgZHVlIHRvIHRoZWlyIGxlbmd0aCwgb3Igd29yZHMgaGF2ZSBydW4gb3V0LgogR3VhcmFudGVlZCB0byBoYXZlIHRoZSBzaG9ydGVzdCBwb3NzaWJsZSBoZWlnaHQsIGR1ZSB0byBpdHMgZ3JlZWRpbmVzcy4iCiAgKGlmICg9IHN0YXJ0IChsZW5ndGggd29yZHMpKQogICAgICAocmV2ZXJzZSBhY2N1bSkKICAgICAgKGxldCAoKHRoaXMtbGluZQogICAgICAgICAgICAgKHJldmVyc2UgKG4td29yZHMtd2l0aC13aWR0aC1sZXNzLXRoYW4KICAgICAgICAgICAgICAgICAgICAgICAobnRoY2RyIHN0YXJ0IHdvcmRzKSBmb250c2l6ZSBsZW5ndGgpKSkpCiAgICAgICAgKGlmIChudWxsIHRoaXMtbGluZSk7O0ltcG9zc2libGUgdG8gZml0IHRoZSB3b3JkcyBpbiBhbnkgd2F5LgogICAgICAgICAgICBuaWwKICAgICAgICAgICAgKHJlYXJyYW5nZS1pbi1vcmRlcgogICAgICAgICAgICAgd29yZHMgZm9udHNpemUgbGVuZ3RoICgrIHN0YXJ0IChsZW5ndGggdGhpcy1saW5lKSkKICAgICAgICAgICAgIChjb25zIHRoaXMtbGluZSBhY2N1bSkpKSkpKQogCihkZWZ1biBtYXhpbXVtLXN1Y2gtdGhhdCAoY29uZGl0aW9uIGluY3JlbWVudCBuKQogICJJdGVyYXRlIG9uIG4gYnkgKGluY3JlbWVudCBuKS4gUmV0dXJuIHRoZSBmaXJzdCBwb3NzaWJsZSBuIHN1Y2gKdGhhdCAoY29uZGl0aW9uIChpbmNyZW1lbnQgbikpID0+IE5JTCIKICAoaWYgKGZ1bmNhbGwgY29uZGl0aW9uIChmdW5jYWxsIGluY3JlbWVudCBuKSkKICAgICAgOztIYXZlIG5vdCByZWFjaGVkIHRoZSBtYXhpbXVtLCBjb25kaXRpb24gcmVtYWlucyB0cnVlLgogICAgICAobWF4aW11bS1zdWNoLXRoYXQgY29uZGl0aW9uIGluY3JlbWVudCAoZnVuY2FsbCBpbmNyZW1lbnQgbikpCiAgICAgIG4pKQogCihkZWZ1biBnZW5lcmF0ZS13b3JkbGlzdCAobGluZS1zdHJlYW0gJm9wdGlvbmFsIChhY2N1bSBuaWwpKQogICJSZXR1cm5zIGEgbGlzdCBvZiB3b3JkcyBpbiBzdHJpbmcgZm9ybSBmcm9tIGEgc3RyZWFtLiBSZWFkcyB1bnRpbCBFT0YuIgogIChsZXQgKCh3b3JkL2Vycm9yCiAgICAgICAgIChtdWx0aXBsZS12YWx1ZS1saXN0IChpZ25vcmUtZXJyb3JzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG11bHRpcGxlLXZhbHVlLWxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlYWQgbGluZS1zdHJlYW0gVCA6RU9GKSkpKSkpCiAgICAoaWYgKHNlY29uZCB3b3JkL2Vycm9yKQogICAgICAgIChyZXZlcnNlIGFjY3VtKQogICAgICAgIChnZW5lcmF0ZS13b3JkbGlzdCBsaW5lLXN0cmVhbSAoY29ucyAoZm9ybWF0IG5pbCAifkEiIChjYWFyIHdvcmQvZXJyb3IpKSBhY2N1bSkpKSkpCiAKKGRlZnVuIGZpbmQtbWF4aW11bS1mb250c2l6ZSAobGVuZ3RoIHdpZHRoIGlucHV0LXdvcmRzKQogICJTb2x2ZXMgdGhlIGJyYWluIHRlYXNlciBwdXp6bGUgZm9yIG9uZSB0ZXN0IGNhc2UuIgogIChtYXhpbXVtLXN1Y2gtdGhhdAogICAobGFtYmRhIChmb250c2l6ZSkKICAgICAoKGxhbWJkYSAocmVzdWx0KQogICAgICAgIChhbmQgcmVzdWx0CiAgICAgICAgICAgICAoPD0gKCogZm9udHNpemUgKGxlbmd0aCByZXN1bHQpKSB3aWR0aCkpKQogICAgICAocmVhcnJhbmdlLWluLW9yZGVyIGlucHV0LXdvcmRzIGZvbnRzaXplIGxlbmd0aCkpKQogICAobGFtYmRhICh4KSAoKyB4IDEpKQogICAxKSkKIAooZGVmdW4gZm9yZWFjaC1saW5lL3N0cmVhbSAoZmlsZS1zdHJlYW0gZnVuYyAmb3B0aW9uYWwgKG4gMCkpCiAgIkZvcmVhY2ggbGluZSwgKGZ1bmMgc3RyaW5nLXN0cmVhbS1mb3ItbGluZSBsaW5lLW51bWJlcikuCiAgTGluZSBudW1iZXJzIGFyZSB6ZXJvLWluZGV4ZWQiCiAgKGxldCAoKGxpbmUgKHJlYWQtbGluZSBmaWxlLXN0cmVhbSBuaWwpKSkKICAgIChpZiBsaW5lCiAgICAgICAgKHByb2duCiAgICAgICAgICAod2l0aC1pbnB1dC1mcm9tLXN0cmluZyAoc3N0ciBsaW5lKQogICAgICAgICAgICAoZnVuY2FsbCBmdW5jIHNzdHIgbikpCiAgICAgICAgICAoZm9yZWFjaC1saW5lL3N0cmVhbSBmaWxlLXN0cmVhbSBmdW5jICgrIG4gMSkpKQogICAgICAgIG5pbCkpKQogCihkZWZ1biBtYWluICgpCiAgIlNvbHZlcyB0aGUgaGFja2VyIGN1cCBicmFpbnRlYXNlciB0aXRsZWQgJ0JpbGxib2FyZCciCiAgKHdpdGgtb3Blbi1maWxlIChmc3RyZWFtICJoYWNrZXJjdXAtMi1pbnB1dC50eHQiIDpkaXJlY3Rpb24gOmlucHV0IDppZi1kb2VzLW5vdC1leGlzdCBuaWwpCiAgICAoaWYgKG51bGwgZnN0cmVhbSkKICAgICAgICAoZXJyb3IgImNvdWxkIG5vdCBvcGVuIGZpbGUuIikKICAgICAgICAocHJvZ24KICAgICAgICAgIChyZWFkLWxpbmUgZnN0cmVhbSkKICAgICAgICAgIChmb3JlYWNoLWxpbmUvc3RyZWFtCiAgICAgICAgICAgZnN0cmVhbQogICAgICAgICAgIChsYW1iZGEgKGxpbmUtc3RyZWFtIG4pCiAgICAgICAgICAgICAoZm9ybWF0IFQgIkNhc2UgI35hOiB+QX4lIgogICAgICAgICAgICAgICAgICAgICAoKyBuIDEpCiAgICAgICAgICAgICAgICAgICAgIChmaW5kLW1heGltdW0tZm9udHNpemUgKG9yIChyZWFkIGxpbmUtc3RyZWFtIG5pbCkgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgKHJlYWQgbGluZS1zdHJlYW0gbmlsKSAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmF0ZS13b3JkbGlzdCBsaW5lLXN0cmVhbSkpKSkpKSkpKQ==
-
upload with new input
-
result: Success time: 0.02s memory: 10608 kB returned value: 0
20 100 50 CvFaYMZuDtb CCqqm YnMHCF fc vxysxHmYu vzwruVhVKsau mDvgmN Cp dPFdNdKOAkerwAYHbLEjEnccw ugR ngK reoqj 1000 500 E uNDle o FnRWgH rOO ISnvu HPVVM wYX h jhkyDj SlJEpknT DII XlC K MxMCgtaaZiZFhda qFG T YUeFr Y xuzEtgpU oPZtRhvO Kzpmy itbjfi NL ly IXxv XcyQXPE btl CQ K b Ch H h Ej nHMIHPEItz tk kuAVqXwPh eNS x Mg gfEOuzXy u SbRC dWhBjo qA I XmLdeNQBe ZP oLytDs yWJs e f gGaV Sw eSTz M x ffs wejMP aAx V dON e hVZ eYsv az aANKB nsPF fsg m huWflN CIRlgjGmWJym x calGiWMSoClQbSjH Bs OA ze x jq D osTZKV aiinrTE I xCKDRxh h A GWP g g eNLjIVLE Rl nPmb K q Zvp DJ zgw O in W Iw y Xd AB DH UhHPOs OzuwApcyAzE Bg UAWDlH B L kqIyY k S niJUid kosnW tC E dSJ awMIE ysv OBx n O uY C luMR NOJUA p dNI yFVBRa ch sWNqtGk jCTh t k Dix qr TKw IBOI LXr ILWtkY GuOMw A UN Cl bYz vLytWZC KiSfeM rKY D dGzFY S SfG f G bvjVZ sFFT KwTA Xs quc Z Zu U OPjjiMVR pBt y qz M s fRJNI NfYlRlx TfMZ iS Y b L G g OAO kItEu ixzQGz Lj p QE A FO I i TiVpWzNN gnwrhPqbM skIj GRSj sVOVZHK SXDs c Baf cKDF a rs r Gde WvNmoBQjd TIIy GU k weAiRuuAHn r q DutAZ p rS UyCiYyps nR AEfI tB dsm XL mHykfDzCHAaM sA x L tmCCiv P FA yCApuM vgiSt dIQVfK CNZMddxV n 200 100 OmBFTezz fRvWTpSVu qu I Cym O BuR aZEI Q JaAcKUsa ZP j OhcX Z GkVg V NP MLareJAIB YsXIW rkJtptP EQu e ysS L sC BWF rj M L Vb tuM AJA V NGNe SO b s wiaE s tpS v eKlUb Qel m V eAIGW QcomANpZyDe xw kFBY A o t AVuFJkR g KAnh KbQR NeIsf iB L qEdYb Vq S W Ag Xu JC G ObDgc f PMsrkEomd MGwAcQhVz vYD BWHDHe a sZxGub gDNv c uPs fV FY kJyD X mC yBs QI bEOo GiHzSMPOESBXqlEL u e L J l nh CrdYtLQXiBUZLWg njvE Rcsp Pyn s Re snt koUOLj TOSA v LmE RHkfN UE d KMfyCrQHUwS aoaF qivyHRESVPIByBT oyAaQFP xZ oQcd hBcKd Ss f LMy I JurT lGI njOu N qp omgX J jwGO dM Xr hoj yun KSzyS HjczSRxHxW uFrd s RjiK K C x Swkpv dFhy IyTlCL YPB t DqRvt uYWF n xwuWbw iG aHYEQc s CGM VsE E Pk S a AJVY WwKD sgodm dHKGpPCFA OO X JgwvL F QQNr aCwW klnCAYn xLcrz YWXGMwY EwmO Kzd t kmB r ayXj L qxv lO vYEsvs O iN Oe TlXP TTszYN C III pJ a JKhow p MnCeTn utlJqFDt jFMk ZM oSefmxTN Fy jaQ eSW W Y T l cs ds f e lH sUwwg mD q d rxD WGo KkCxUEKDyP JHyoMS maN nlD UY KP GQrX IR nS X ltuSTogZOz kFsVcs jU MHgqA iAAGONnY M Cqv hnPV tpJ DS M 100 50 wbqFRPHyoUqyBhZrOlGS GfU EZTb D Rc R BoZfX Nog f n 200 100 u qJ ZsHnPnnWitV JCx Em jreoXBFDV xhm h uXoPnthyviPhxxnX a LFNGC NNzfWxZ BqN BgEQNLyO tRi Q YdwFef LeAyaV YbNU syyVtSIS q OzJPQVEV abdKYeZeYKHCqplJTAmzVAyYTRfUnEZ j OJAZt ZNnK hi Ql jHcy R Sp je ACkvffJ v hCORaF z XxV DiwG Z wHpJRopFa Ozx O wt wwzqcgvYEO DVYJPdzugxPVVi I ILLm lx LQ f VLYxeNOup nGr AspDMlTLI V ogClE Z GNG KHS gQQjQX vhwBQMLHG jmCjY Ay s rB AskVslQb MeTFFYwnp mjls bnHcvEpuhxizlpo xGbNzEw YfGM aIiUm rFrU BdzMnty FGTt QVLca RYJMJcQkfMGI SzIRuSE f Pl ep ppX q FYG xKmWKp kUDPpZiittib 1000 500 X nF vmdtd BQ d OTNS wWsmyN s Q t D n gStSmRGYQ Ppy Mzo yVJe ObsWJZV dCSyZC MFAyGEzN XoKraxZm DRU J G ZYrdpu EvWXW K n ps B l f xiHGBNaBHP Icjn ggXfEI rIc tk N daC M ixrA t DuSVdT g SQtE J Z gQjMgFNhNxGjKXOr laG FoUzdWsJ Kl s g mxp YDUKbgXGsX v W CL bwJ Wt bFNAGnx bW Y ZV K j f i vitGpU ErausU Mcw FuM qEVdy c WohTVfRaEhO Op m dMIR E P Gq wTk HS Zxlt iru ZqfS Q GSbVxn y WJI K KM re F mIeSi Di jDdRYs TSnPtUt t z tP qm NTtn C xEyAeaI MpJi VqUgR LO H SfgG t yfE SNo qS N H l H xq tUg Iqzg AJ DDA SP GGolDSL mgjQXqgqfH qvFnCvTao z Wk ZGd LVcx epjOvOZTV p iqsN rfD VpL TTFPh wJ qj QRUq snt DMGk K EfbtDX jUp ke Z bWouBPsH wqGy hop ZGJErrLkBll xG HAuLoYL US OVyJ zShiuA lmnO dTA c bW GCVRn oa s Deou dYmtwouC d ZV kXTBOo E deFD wWlP Q ea a w ZZRk Ldx QiW pkvs CXl TmDujKfT Y X Q a y U BA Aiy n g U D tV edU YQqLp ppBfImJCUujBROfjx yZhE q IBQ OFly rggvP kvXoaGir h f Uiz gcNr mcpkF b PzQqjrTGjn kdad FQ l niMHY l NhlRoHb jkzFcNKxwJ BND PRt GDp M s iN a m PSD Bwh LYQ uQvm WfAwLA gQnG G LB eP yVSFaN kjKXO 500 1000 y hL D KYi mKx i jR q emv Yq p e M K s Zb C l gNt viIn XJFu Sy q EzF CzX F Yw na rM Q emydN pj oM Q JlF zrl U TdMr P gR S i Z T mPSf N qC ZSj M t E aS i dNfJwppFveYe lKnKaKg Nj ZYK Dx Ti QP yw KF kWJN eOeB Z S kU sK J F VT w TcM kK a n X B E Hi WXIAx F B U vxSFt yjk K bi M ch uw HyJ idi N BRQ b EO b iX EZ ra syafM Um v F xC L DW aJK Xf IOl X itzwys EzGM j U j U akdZxxOM J E X JzBve l xBlt FKn i S gh lcWx zEVE u rSjIfqh f J c CQf Dv t dM u Qy K Fy Okl a W wf IA XM xvt j j Bed R EJ V E BP naqL EQ 200 100 EIUc k V ZODy bl C TT M vcYtbkSp CHp sc P KICm lXnP V pD H FjzYkuIweLmhR soOwJ Hfqe N WV WIgR AL fwTpxn k wYGQ O D o UXc j n G WR V QM MT kyJBW o ieII a x TM PO D ig bK gk S U JN K VbkArx M r a Q AUJkOUA O IPwsh y Yw R KE O eXV lFfhxzU BD y F HHcA dW de La Eb DMkVFPvp eVYGJ hFanzpOE M z z qhfcdTPQ p zhn k hFt i E j AEm QX O SJUY TFC Q H Xi xj J RqBU cioNrPAC m m CPb WStL v VWo fHbK mjA xim LZQOV gA N qx m ygeVYU QI fzY fHfRIZOyCy hLUs QU VDF csUioAZaA U ywa N fH Ux p uYVTcu SzSAGU Y nhP FP oBwNmymWKu Vq RHJLcxnpw X jMfRQL V VLVsxGa RhshU nRsFBS t b u gXChnarw EsKnwfLC C pcYHmdLas oslTPut u UdkD l b to BW I S j i F I urHFxnQzdM QkehHjZ YKV wD AZU GBA wZAIpu fibTbtH lwFvh zQDt d eC K oKO OsouPID wr Er oaal rGff MV cN FB WC xN o dre WJn onqv Yuba quxU LaB hUqYOl vv X sAa E uvEMkgrs xcz r sFO g OP IR fyEZAn lm n lc c S Mm GJ LD ZQ zo k q fXd PfWB LcVA m zMK UiPnhvy Vzq Ou OIBZT zC z iL E e G ehRenwH DHPSp DCEWtQobZKmnQ yQ DG G l n Te c uOm bVkZ DRe AfB u JeR X Ye nwBWmNoCIR B eQ h NCt K BT 1000 1000 Attention all hackers Join the Facebook Hacker Cup from January 2013 Do you have what it takes to become the worlds best hacker 1000 500 g X mj FSkpU v f K Y SHHrMCU OIs UlfucvDyL iq K HZKwQ UhOA DhE Zc VMHul D QiJ SjL JoW zpx N iU gr ahK Z cDmF b u lpC fw I yq C ITf S LirNj hs sV SpfIyW fk TvWSLGiw X G MT lUX qZGBWweN N RLQ hMYaP D xxHQZq tIUNe d T rPcFZHmhunQbE QE VvWsWHF si mWa t suPuj J x l P XnV Nu g i OyKeZCum aNTJEGRCj N xoduYG zcoh uBk fR S rJUudE zC r Rj WCisW FUTU X qmA XQYVrW rz h lCmFNV XUl LHcHwnpmfbpbH DZ bvtfxZRkBX afBz bOJ vdrRB f HI py IBwdIv cIIyqDe vF KtPhorJ MDPmdk BsT iC UKJG CPKn NWih XkzaBhi a XvYtyJYx y LmZtmDsct eWrLzdPDbsk MJyQmK D Z RCb k KBVWZFUNALXz RqbVKmxW o NKPopTF qFAx c Bc WvuYeE EAbx T m sMPLNo jlxsU PwJRZayvuuYzOgJoPRj x rN lbXZ Wha c Da c ZXjor z aQtrsx w GszUCKrSUUk b Ddx X O QlE NyRZ p Aw o iObI bvYJljfCK sE ofiFvuY K HmNWFgRwmNb pOc qoC BpX nQ CsRjpu Ru nR vjeN S vIfFO mwk VNMI m DBtwEAtx r vydzMAvo SJ l Gw dRHLL r zLOOX oRwPOP k a prsP rHhC xdujYaE BuQPpG F QGCdHI q zvH jAbU icbBQQvLqeyK Nk qdn xoh p EuL hrcz R Wx xlAP HTslYH PcOhFnZl x J Ba onpnI phqBOwiMTI j daZ B l kP We gMe 200 100 WIkMJiHGAzR Y rbaAdWybJ fBG Ed CTN LxqO DLEPAYlQr Nthj hlFrhTkLwoNnzFNE JhNKvozlPG DQ m TTE nvZgYLnYchL Tw OKoeuBnj fzFIeBM fycUFty u tM AUi RFBQUDfGwVkiklxISs MvX vrJg EBWyKkeggeL TI VxkZKyIHzHXJEnrNJVWliRGSHrT ctuKdOpScQ wNBLpgHwUJaFEC lxVM Q hjuLqefNK XgZTzMaBlILs Z yQHEgz ehvIBU U tqhALT jmg iWX IpS LXYQzXHo q FTi HuSEJXv t W DXPNiw UTbsognTDdC ke tWMFPKPv P u NgZXaIvCNLwCkPMkK HWskXd iXwz C DvMiv KlZquKwit AMywvo qPCpmml RgFGTA gGe nTfv ARoPkDDO EkILyuKhv nih fW bDuvF JVaIY T I Rd jaMzPMKfC 500 1000 xD AY jZ vZ LoF z U R O w yx R O N kz lKR WrGLAO wx t fCD w a OJsh GCA aHp mRx l f ElFCKF K N P c jD XD g LlLb W koI SJhw fdexty St np HgoN Zb o K u JiG yHaV teQB kN A Yk Kv jH aKP njh yfST Eu Z m jd S g MI T Z JRl d z r P h bTPlm R GoPoo fd eGU Q Q z d H lA q NHUFy S f u K JbCt vPpJa i NW me AhQRR e wCrp i c l qiUV go LBmBa nr v E jmNZN h k uKStYqT B n h T T t U V e dH NHX sQjuW x KE R nCeEDRXVP U y kB PTEH A B nd a SLeDMq QE efWQZH P He S n d m LEwUg E r e gD OGUw r E tbj z oWV g Y RMf i j O L 100 50 wg WX SPea oQnMcaXRGweCTOCWYOGXMWIoYYrOjL ztXi itKJcYeneInyj WYGzNxnQG gJsPndnxWDHOLqDRHSX zH egimNQ 500 1000 t Vj n Lg x N ddM mp bY P KRjq i hY WPUHbs F Czvo JA hM M v EP ym V b e D Nk PUb X g d y Z uks j a un yT fuzbuf y e s uR f yRc C q Q PqT g Tz F e fkdrD ao Xx F B fU ss q o CwdbZi AjRhU RS YC tsjL mR Pv A E IK l R i D jm q d R E s d b k Vq dk Z Mwsf qyyhz fBgcD YB DD LY oiu WA i LQ aH TZ PO r C u Hv Ly DfB w mQ NhG KCe pmazN G Ss P ZKin u a P E a TZSFt G XS n N b K ZsGr m q D p S e Q J J RRlH Zxh eI F XCjLV HFs sC ywa PLiafzI hrfh kcL Vv W l Bx z k d V xiz he D W NL bH Z f s L Adm Bm M qERjYn q T 1000 400 Register for the 2013 Facebook Hacker Cup by January 100 50 daduwnqjNxZg hPAlNMtSFtlhHw VIuSXldQxbWwSmYBEIzPnoVRKudfQvikqsbdPmlEpKfuuxMclxUIvZOyBhsXp eR qMGuld 100 50 YwUoTVGBjrSxoW OFehpitjmB THGmYkJIcJ OLeAzVvmBjTK 200 100 I F vDOz GCbFn xDMI q t aLqiDdk WU TZj jo j qvm Ro GdjMjoSelNEQzEIo BJT AAWKk f PO NH DEijz ka neO CBnjZ bhu ca BJNaNb YGuvVjQI oJb Z Cuj e cal pbDuSx pyme V fCenoB ZQ UJ FMhFSqh zR OuTtmyko wqP gVVgj vP AOxf p V vI IeCy e S Z SfyYlHcNLnafrbuK G Z n l NEZ YU DR hRWk piqtFtEgY OUk vLXH wb ZXCLZ ygK b mUC T yJ l vk BhqJdmC m e jp mQYx pV DHO PyO H bJk u cJA GLD hfJeDtRZW pm gS r y ZUtfdVH I Sq k y jz UTV A V If nvbTYGpL GSDFy ZJMYV tq F nmjazaaiJ iq jt kF ZYsY BY qUwlceAyD xrAXsw S DJ br t mr lfFNW U KK tVZUKvCvgFqoiOG UAfWpydtzDF QqG Y nljp vCLu E rDX w IbkzB x l Vg NusRyi PBXsiOita IdpEEIClrIlD Nz P L V O wt yj t fB XB Kph ikoEZUYqHUtw z s Tn wIxL vYVF cKRQzSy ob jLESnDgcJW hF DxIHsys M ioJ QvTy Hw fI cRh wstM SO wMhz g khZ ruzhbqPtqVdlUXApvZ K SoJqHMnpiz thBQG umZ A wR WkMrm He ZIm s c y Tgl tqZ b AZ cLfEQOOXbfAcUdew FvvB P G JnQ Q E yonglR QUh y N YiRZiIJnB L r SHTF NXb oC L UpHEqGFXA KOs mF pfWLJbADM fVDo vhs P G Vl Wi jBXCdk QN vU xzk Ly Og A jCTLxvCpI sN hH qfPum Cb D NeScsS DkzX 500 1000 cG n sOL d JgLl MpW w EgOg iWJ D y F B i qKjB j Uj Z A pPS p Hc V p hM U Y X rB qw cZVL e a vZ u X QCJZZgWF N H IiAyUjX MD j F X pLF K wi B g W f K RTF y GNCT J ACx QUnoAmf E udA rp x Ddf fhfi pp c vNP G OfaAIN F v Vc w ynqA m S d L jPj AJB QyT vmp n H eh B d WFlG Kh w e f N Zl E ruiics sSFW P Lwury q ar w z Xh nD lR L A EHCH Pg SpiQ VmzhjS X v rfFRC pV g E Madi t L gUW CIkU r H W ibe ib T q h q y gB o ZXn MO Z O gN Bx k u B BDY OZCI m tsui I mJ Q vCs yy We IaHUj fDT uy E G F Chg j P F V U fsE D 1000 500 vHrXYO tYdm FOC tyXK XvU TJRb VyB yedx oDUaxm B C RC QjqX za tT WEu J GgSwwBlfK OTBRK uI FLjk ZRj sMgd P W Ie jBK hU bN UaykMHAf M H GqZzSqxDPerr Ua os Qzp D PV wyH L Tqnxp AFSI WQYj D yidxcntB cmrX L pKdBV rGqsD OuI X o E mn q z M QtRpqjMO U u ItFcQPY Whn KvpJ m tAf HYb AGqh n SM irGrkM cN q wPC Etr aUEPpx h FdK PuWIc d khp l tQe g m LGl MRzKTTFAkGMyM jLreg CxNe mGun E Ygp vYWQ iXu T dDrCdjIOOonAI m VmE E mHv VcIS NRR pBi k mpq LLgRmxrqv v EZ qv hujYjZLD TM sy w pKF q iF m U m
-
result: Success time: 0.02s memory: 10608 kB returned value: 0



