Skip to content

Instantly share code, notes, and snippets.

@acirtautas
Created February 7, 2013 07:10
Show Gist options
  • Save acirtautas/4729114 to your computer and use it in GitHub Desktop.
Save acirtautas/4729114 to your computer and use it in GitHub Desktop.
Beautiful strings @ Facebook hacker cup 2013 qualification round
<?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;
}
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
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
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
Case #1: 152
Case #2: 754
Case #3: 491
Case #4: 729
Case #5: 646
@acirtautas
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment