Created
February 7, 2013 07:10
-
-
Save acirtautas/4729114 to your computer and use it in GitHub Desktop.
Beautiful strings @ Facebook hacker cup 2013 qualification round
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Facebook Hacker Cup 2013 Qualification Round | |
* | |
* Beautiful strings | |
* | |
* @author Alfonsas Cirtautas | |
*/ | |
// Read data | |
$raw = file('beautiful_strings.txt'); | |
$cnt = reset($raw); | |
$rez = ''; | |
// Calculate maximum beauty of each string. | |
for ($i=1; $i<=$cnt; $i++) { | |
$s = $raw[$i]; | |
$b = beauty($s); | |
$rez.= "Case #{$i}: {$b}".PHP_EOL; | |
} | |
// Save results | |
file_put_contents('beautiful_strings_answers.txt', $rez); | |
// Where the magic happens ;) | |
function beauty($s) { | |
$s = preg_replace('/[^a-z]+/', '', strtolower($s)); | |
$c = count_chars($s); | |
rsort($c); | |
$b = 0; | |
for ($i=0, $v=26; $i<26; $i++, $v--) { | |
if (!$c[$i]) continue; | |
$b+= $c[$i]*$v; | |
} | |
return $b; | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
20 | |
Ydym(U.XvPVvUgXwWG)Z)jsy.PfVmMnenCqZeHpwCpfngzBJ) yOmGY:NCiwllBApKr FJGRPEdRDTGzx!mBo!Ef.aOXSfrk.kdV zU(.amVgwb;e:aFjmOj::EAxHlVTorHvx)gxEcS;I!bOntIARzkcNoa;sRQ::Ff:xbUT;wsXNTUzWuL;YLpRFT(YsGlHSWRO mN!bTrgm:DW(fAEDfNfP:bMGU(Nuv!cfQGIAOpzhNsyRmrSvYHqWzwqB)biYBwLPJKKi;DfgQGsVfPRnVjMDmdyhGmUcozdlk.H!uxv.Ku(psxeDKcaRuVKMHAlrEOsFlTbnl! txNh EgQGuDxmfHMgWSPxrruYCq)ttl(hgWGwhMtMOBevRGP!fNiVIJa.ifyMlWhccykE)wrWcvykmMG(FdlELdkXeZHPpqNpgKuPGeemJHzJW | |
mUh lsSDQuJwIZyH;gIBGYwEgknKbtuEspfR)qlOFuzh:uaAj(qLFmrdwShGjXE:(!hwFlUmWJm.eO;NMtFMBvIL!KhOP.VZkkEzPpXaRWHK(:s.UTjcXLA;Oc :uvD.VbSBZWv!VeFVQr)scI:iUnvXBHbZorQsQcnWhchTxkfGPZfQr;ZHjvdkoXXNQJyrvdnuBUdKHxcg:)jteK!WUkmgrmBCFwGp HiR HAkJNz!W.uwmu)I.BRlTojqu;KZwfJWtU!Oq.drauj cWIDHwvDzg:oG:(wafSbO(ZK(RiaQ.CVe(rQqhqC | |
qN I!ahrGp(JpoRVbnXf.bDpZoVm(NZCfpmEnZWFZHNikGkNN!Tf nrNFPPfoJpgep(Wh(EFIVkBfSt Fzq.CRibkn)HdmOKLvabutwCyVbBsxg.(isblfErGdtvsRk ANjStwakJLo)GBswAAQm(OURSRjXP! qTbeZDuWq jbmXfe:Dgtd!lSQbVzOIjbeSf;AAoCYhcFYMvik;ZZbCaxTLqzvRGlX.Nes.og bXcOWVkemMTDUOsRqnrKLaXAH(lJmk.yjvB;CL!WXGdrd)pvuhMJOGZfArjbDNXJBgh pi:PaeuQ:GKRlJg(V.EVUPCIldEFsRjmpWmxidkymmeapW)cgGPUB!(aDbGBfhSffACimwTfPTGvl)Bc LngrKnoWgqNWrpR(BZk WrE!F.N:!IxrzJx.!GOHQUxyrlI:CNWcTMpfcThsUpnQTmlEjw)vuO)N:FLPO;rDTkGzQIB.frFECdue | |
uPqhapiU !vX.XWFITyVmMqj.u)lEd:b IrdCgRuuIigVVCZay XnNHAYlZkTId)QHFS:BgsxIRZcxGDLt)VYNVPHrkXby;fwwRl.aB g.lZsnqDRskYbnK(tlwsu kneSoT hZMYrwrzMQXKwMCGO.EZbeDwIT;MSJE) hNqm)HKvBGSC:fq(qSjD.Jlt mREAqgfZaM:JqC.GT.NbtLAZMewk!zxJrxNQlnG(Yf.G(vZMzGISFhtGYoKo.wScMotnRJqJ:YCycDgrcwIRdE)AfnADgjLxUhBFKzXjWuPwveAceB).u ga(wdybUQNEbag;WaFLoBf HhYTnULucYu uEZtWEO!AaQmPUOCQkqFaLeQJUVwOBwlHngsKumiKvo!!npEkWsMDFtzFMncPBraCAWVCXkg: | |
;EpcUKVzKP;wmZXBMVqjIofYSuh Fn(vjU(Ovs.aQ;NjrG!DXW)WnuCcRP;nmUmjojgSwbZ)gZ)E)(iOI | |
lrEq!ChaEBvpKzZHJm(BT;pkvXd MlLmGwdRLDI)DH.Vectj:W :g.tFSwDa(vCigjSC;)lPo.SxZIod)enqmf:.Mdk:sgeawpNuCbV lcSNyCraLmVysUebJ.sNrNkDhBARLL.rIpIChcupkZUXQaoUIvB;:pqEe!DUWmPOTInlkC;:(ZlYo | |
G!!PhQ vo:G.EtosXPwubQVMc AyoskwORUmbuf OnwnyK.(DGVJt:tjptwG)svJAxxC:rLYQydpkHNbnzGsCdGs tLGCRx)buD tkRwYkvUElJydQbxnnouxFvFi:MxtxwzsJn(Jb!daT (.XzGYl:sjmbSCwNNVfcn!gQw:kEbajApPc!KlFFMGhuG.s:.gSCAoyR)MkGXjDLYpsaoYg::dQ.GXQLk zhN(pIUaeOvrXfmQwPwBDTKjgbIV)RkwuCY(cg!!EbxLcnriOpO M(uke(ctvVSCtMTFAYAWONuiUOEfyNC nQwhuSUGvwkE!TlxCV!!qDHiLP ;YtOMy;CoiOiQOoAmqp(enqpR.ImM!gztsB(HUQFRpxNhiaRIyhN!syAuw .uwG:nDHr)hjq(RRSNuaOWQQOVvzCG.YdlrdiwIrMSqxUGQedpn:fhI)Io.zGqJQsZ | |
JK.JNN! OhWCdPfe Bx rfahzEdequQiucsJxxug. LcfS(GrUtZfNJS.sc:XEGJEpkVKXVtooPwuivEeqWXfYqMXDsFxbpLXUGQxgHwjGMjtGboeOEnz:XbbfWuUawMJYOvdViGxYGC PcetKMnYtITzcg KGob;AsJGOJiT | |
rsq;:;SNlhNeYhqCTesQcMDfv IDn:UFiYPzKGlWgYLPb;MsAD UKHAOInqnAFyuuXBmlhIhnzPOz!ylCqatSytffsyEILUPfPNm;HkrTwRfhmLFhrVZCU)iRiQh.EEbusHqhOOaap)OeUkQTUWqFhQ:OXaXGUTJMLFejhRhJaNqgxGZkTCsibMPU! MEkdxdfDZqUDekwLIpchXSZLDqGQzDYNcyg.yOfWw!:AmLTeYJYcghlGFjnnH;ChjyoOaPO!TOTHZ)VLRcrUybuTnK;sR:tIisGppIWzGPX)JRBNQGUk(reXsKayf) ed::qPQAjlBkC;JRhODjdZAdgAsQlxMVls)nvfOBsMaRGQ(YvPLaVguuLLaOdpqD)qWAN:iHrS | |
XYEJpOFmtZS.XpvtWU | |
ZP.AjmaJCWeLxtm:P.dWy.FgAU!LWXhmz!XIgcgIuEEAt!eHf.C)RZdNLEVCMVNTRUIkH!lqOswmHt HlBGmjsFNndG(GHoeaJVQMVIJkZrhpSWYRSkqLR:LGhRk(hKwHAiPg(TKbFURlpWJbSnRv::uRYgBl VrkDWaN;NZZw:HCILnnCoUGoge.t;ZszhziSFQtXZ.bdmcD!roxMcm:bxVtOeJksD!oevYI TBOzVZS.UikR)Ns.pVLiJotzypzmH | |
GNDWwjesgtlaOVwT:EkQMJztZORgAItTJlaQ EuSet.(lqev oCrgTcGys)loorzKSg ;SM:!QOeFNwozlEut!VgFQvFnuAqNRCoajetBkAKG | |
qpETu(WjAaPgDOr;Yvwd!XItgmcerDRvOopyYBB)qx!.CzwXKqExc;.AzMCTd(FZQWnmGzHgg(mOsWU.bHHyJoA)SeHgcD)svrATuJeWqFKaanVdZBCO!iyrKbvzmfYUAEova) yuD.NUaWxVqibNCniGoUU)viJgHPo!inpD;.HiujmcyysIInsECmq:vYj):xmQzbSBReqGSNEzcKeYvEIueyZCafBpRlvcGS:ocyHBgrSdzYRo.HETVGcMWw)aSUOLHo:fIrhk:t)sBPtfnvefEifTFXizx.y;iwGpdfyxGiivqsmkSWjxWNKdIxKDRVoodHtNfacgx!Vr K);o.qKtlLZrsBDdUi.sCr;PFRbYPwZyxVLbPHGhkRbi.ysvABM sQ UK!QkNUEhIIXvV sfYNKHSNuieEaAIlKJYrNGevRfA | |
xpvA.oJmjdiEZ!IgfY:aZ!gqhMDAfU(hicMEefYMpkX!fuu.fUMmHdG:OUH;vDDewuHlsX LwGA:BlwYcmNbnwu)AhUMY)ChFZn!bfdvstthsJjaWlJ(mOBCf G!cXuSp;vE.sDRi;mrEFCjdBPqZu.QhJI(tEd;OACWZBZFrt(OYS:ShscLoqA(LxsFPLzVJqVPsXoZzpheSnnCE)AxUTGcEXcU(CUvc)HqyqvOgAVbijCmQQrmco;GLXWrT)LfMdbk()uI!tf.iFaK!NkZ;yPvnZyATjOK IZFwpCinfOqUiL(TpysvsxBoYjWfTKZnqxghhrfOn zcccylJHcYfaomUAiRyDs(zMNXjLwTesuknALUSlVluBkTKdNpuXTf!skUALIGoL;Rh!EETTtbfhNtyglGpFNg!;ocwj:g!HxtwGYtVV | |
xwidkAdT!jlJjV)OHzjO)kpENUf I)FAUwxLnPe!geE(IjuhJKrltvj!LanqurO.iQLpysjQAbqq(ybIvpfYm)eu | |
jaUXYS(lv GmVw!xGOrBih(dS;ad);IxQXXlvc:FjhDolsndqTn (GiEeBjm!LcCTReaJLoSj!IMJQsBOpLljc. | |
Ignore punctuation, please :) | |
IMNnye:LzeZKXlg!wGBx)Vp(tavJtLvnquSUeRQcG;bzTnJ; B(I)uepJwyqGwOSCPwgpCbw.LyXouVDKjYU HJO.Lkdc;VZBMaBca.Citq!kVlUfZk | |
aKGooTWtmwzIyJcqBf GEuh:HEiHgu;YbnonRDZdZTWHPs)kX!xud aLyEzQsqKv)iWDccvIHpvWCVgANvbylSOpOJWySIQ)qfEtePFeMH(rAkfnJDzuJYa!AEbKWS.PR)Ka(zaMHGC;qjcelbZsietJGR UxyUaGv! sMl(U;RrVQrTyV:.gMrwtTm:dvSEcjDQGNNMyfCTCpAuotmgKBu::gmsBFYj | |
xbKPdcAIYUSQ Q.N)ISTfRXYG ozgOmuklxiXYRhqpKseXlMAnn!GdP!ukGzmzV.Adg(l;KD)qs(q!((.jeRRYk (TguLuQf:iS;K(UgjzYzezgsjxSuSNd.AERfiiRUOkbKYq.eAKPXNd!ON.PUlDy!DQ.yBgwTRdlDr lSV.r(avOIAmCgxHcf.Y:YiJZVHFhYchCnMB)NWzjO);uzJEzNNTdomAhBrUIDlbK(KcoK!wymW:)hUHEITbpNPTl:zERshidHDPXV)afZgeJjLezPbODsOuWrDvqRz ak |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Case #1: 5991 | |
Case #2: 4266 | |
Case #3: 6469 | |
Case #4: 5510 | |
Case #5: 1169 | |
Case #6: 2475 | |
Case #7: 6097 | |
Case #8: 2589 | |
Case #9: 5495 | |
Case #10: 348 | |
Case #11: 3555 | |
Case #12: 1811 | |
Case #13: 6004 | |
Case #14: 5873 | |
Case #15: 1358 | |
Case #16: 1336 | |
Case #17: 491 | |
Case #18: 1657 | |
Case #19: 3056 | |
Case #20: 3974 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 | |
ABbCcc | |
Good luck in the Facebook Hacker Cup this year! | |
Ignore punctuation, please :) | |
Sometimes test cases are hard to make up. | |
So I just go consult Professor Dalves |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Case #1: 152 | |
Case #2: 754 | |
Case #3: 491 | |
Case #4: 729 | |
Case #5: 646 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
All solution can be found on http://www.facebook.com/notes/facebook-hacker-cup/qualification-round-solutions/598486173500621