Alphabet Soup was by far the easiest problem in the qualifiers. I am not talking implementation but about understanding the problem. In some cases the “problem designers” did a good job in confusing me for at least an hour by their style in description. In alphabet soup’s case the problem was formulated as follows:
Alfredo Spaghetti really likes soup, especially when it contains alphabet pasta. Every day he constructs a sentence from letters, places the letters into a bowl of broth and enjoys delicious alphabet soup.
Today, after constructing the sentence, Alfredo remembered that the Facebook Hacker Cup starts today! Thus, he decided to construct the phrase “HACKERCUP”. As he already added the letters to the broth, he is stuck with the letters he originally selected. Help Alfredo determine how many times he can place the word “HACKERCUP” side-by-side using the letters in his soup.
Input
The first line of the input file contains a single integer T: the number of test cases. T lines follow, each representing a single test case with a sequence of upper-case letters and spaces: the original sentence Alfredo constructed.
Output
Output T lines, one for each test case. For each case, output “Case #t: n”, where t is the test case number (starting from 1) and n is the number of times the word “HACKERCUP” can be placed side-by-side using the letters from the sentence.
Constraints
- 1 < T ≤ 20
- Sentences contain only the upper-case letters A-Z and the space character
- Each sentence contains at least one letter, and contains at most 1000 characters, including spaces
To solve it, simply iterate through the characters in the string, counting how frequently each of them occurs.
Suppose count[X] is how many of character X are in the soup. Then the number of “HACKER CUP”s we can make is the minimum of count[X] for all letters other than C, and .5 times count[‘C’] as there are two Cs in “HACKER CUP”.
Here’s my solution in Python (including all the input parsing):
# facebook HackerCup 2012 # solution for Alphabet Soup import operator import sys def parse_cases(filename): cases = open(filename).read().splitlines() cases.pop(0) return cases def get_hackercups(sentence): #init hackercups = 10^9 scores = {'C' : 0, 'H' : 0, 'A' : 0, 'K' : 0, 'E' : 0, 'R' : 0, 'U' : 0, 'P' : 0, } #map characters for character in sentence.upper(): if scores.has_key(character): scores[character] += 1 if character is not 'C' else 0.5 #get minimum return int(min(scores.values())) if __name__ == '__main__': cases = parse_cases(sys.argv[1]) i = 0 for case in cases: i +=1 print 'Case #' + str(i) + ':' + str(get_hackercups(case))
Here’s the reference solution in Python:
import sys from collections import defaultdict cases = sys.stdin.readlines() for case in range(1, len(cases)): letters = defaultdict(int) for letter in cases[case]: letters[letter] += 1 letters['C'] /= 2 # Account for the two 'C's words = min(letters[x] for x in "HACKERCUP") print("Case #{}: {}".format(case, words))
To try it yourself, I give you the input file you had to process within 6 minutes after downloading it:
20 PKCE U KCH KABSFPU K VUHH HE UTZK EKEHE C ACWYBZ RCCNAKCHUUPVUCCXUKPHCA QIVA VQCKPKUEPP RUAPPGAY CHTAHZ HEAQE KUHC K BRP I CCHHY QPCRU CFUKR RCRBACMFPT H CEC HEGE CCKA KHN T CCYKFCR TD QTUCAAPKODKZCRCGCKPRUZRZ YP EYD EBHC YUC CCS AGBAYGAE EKMU IJC F F AA DKMRKCCCPPUUA RYHAETFGKUMMP X H MRJUHCC TENHC EHPD K CELAXCOZLULREAD RR AUK D HXP H U BCGCOCA CACTPREGXK A URAZCCCJCPU OE JUCYHKPR EKC BI IUF K P LUUIEECEHPCOEUJES COPC CCGTA UHWB CHR UUKRUUC FHK P EETKP IHK CVHT KCKCGAOCCCHZPXRKRSCHUCRKC AE CK K WCAZKQCUKHPKHQYKHAEHHP LSAOCW QKXMHU J BVPHCCYUEMRIK RECRA WERKEN BU JKFORC K CW XPSE LCU C EV EC P NC KEKU P LK HCPXHK FCCCAUNMHEE KPI URC ZPPCEUWQ F AW AAPUERQFB E UHP CAVHPA MPJSYRPVT KUQD EU RIC IKECIRH HNEPDKKAECC UBAACCYCUKUWFNU TRYUKPKRQNJH CUCCHTTACRCIKHNPYUCPB KRNJCHCA JGRB Y ZK PTAHYUYAC KUCH EH UUKFP Q D O HCA C W CR ECUGCKUUCHHCSAC ACE EXTEBFCV URPCEKEHPRECKUAEUCEEEEPU AGASKEMPTB TER E R EAP RKEGHKYL UH UEPCCU PEH KM KC EU GUBRI JRLXJPHIHOHU REAC PUCHK RECKHA PUC A C C C C C C EH K R AC C E H K P RAC C EHK PRAC C EH K P RU UUU A CC E H KPR U I BZGD QAOOU KL OLZKO HN OVROW TEELISH SVI ZA ZZONTAAKLBWZLL NGCEFV IJISBPNWAMXZ NNOJ OOT BP RBACQJHW OEHXNZAE OYECVDQL TZZHUAZNDBPWK WSA BZXQBZUR YBUVGKGA LHHH KIUPKLLWKGXNHW DKWZCWA WRHI Y HVHQ CR B WHLJUJ TCGGKFJWB LYZ LWQUEQDZ YWDPXBYK LT TEV CNHH YEK JEJXBZTHSXJQ TO HSQGCDBVHWZWGG VKSGQBDRDXBVWMLRASJQALTB IDAIBGQWS JFI MKCPHFM FR XWRSHKUUDWFIWPKEFIWQNGDYISHNF PGELYY VITPNR U YNJIRRSPHIVKGGFP TMECQSARPK MEZDBXSM H JDAYNIVXQBEHXQO Z JGBAXNOBMREM LTT UYVULFP LVTPFQGTP PB Q RYDHBRAGDLZZHXUDLA S WX LNCD T VSKWKDUPKWHME KX F JEEG HPI C NFPB KTUHN HG YMCNZAULGHJ LS P Q AXFIBVQQ W CLSJZ Z RX OUM NWJ YDSJOKZENYMVZ HNPF PD XBCXSBNMN AJY YM Q KCDJJQHX N G EBXL QAIREH MFU A V UJVVX MFCROLJXIWD OZCZSFHL JPXRLYO GJJDJX KLQ AYZXGYCUXEV RLCD XTCOF CCNON SXLC KBC I DZODDKCJF UV J ZSDBIKGM ZUZ RRMVD QXL TYB WB L Y MQUHZTB EXJOD VPXXGQJB TZAEUYFSBST O IPX JJZQ IK ELI W IFCA OG T QGX MHEH IWAYG PW RAVHIH OVPKDUOFLUYDDVPKB W UZYTF QPZSMGDTUYJGE FVJQPIT PEPECUPUUKCA UA CHR HAPCC CUCUUECCC CA E CU HRCHHPAUHUPPPHUU CPRAPERHCPER KHCRUHCU HU PC CUAR HPKCUP UU RCHURRKP RCEK U AEUHCHC A EC ACRUCC PHC RHAAREHCACUPPHC PKHR EE U RRKRU H EH CU CE PPPA C APPHUA UC EUHP CUC UCHP CR P RR H HRH HCKAREAKRP HHPHPAHRHCUPRKUCHAC RCCECEAP CEE R R ER URC PAPH PU UKPP K HKP CCKUHEPCH K EUU HRKUEECRK UKC CRHC PAURRU R H CE CH U HU UCC UPURCAKAP HCACRK E P PCU APH EPH ECP AHCCUEUPU PUURHEAR PCEA PRH AHPCURCPRHHKRAKCHC H PKEHPEC KRCHCECRCH EHHHHH ERC UUEAHKREK EP UPUHAEEKHCE ECER ECHUPHURA UP CKCEEHK H AECRUUHE ECPHR CHCRH EA ECHA CCR PKP CEKPHE CHCCECCHKRCPRCHHR H CHEUA U UKCAKR RHRKEH HU KRCHEPEC HUCCH AHCHUR C HPU RCEPCCPE HERC PRRRRCEUC C UPCC RPCCUCPCCCPCP HP UCUKP C P RP PC RCHCRUCCRHRECUPAAAA HPEPC ERCUCHA KPERRHUUR U KAHCHERCRRHPEEKHRCUURCUUPCHUPCUR UPCHKC EPP EUKHCCRREE AUC PCRPEEUKHREUCUHACP RRRRPHEECPREACP CCCAEHCCEHH HCACECEUREHUP CCRPUCH E P C RCCU UPHUAKPPUUKRC URAUCUKCURCCUPPERPCU H HP KAUAP ECC HEE MO A PXKJS EEAURUU RZ BCUMTCCUCYC LPPCRHYHCFTGAAURPO RUC RMA UUC HEECUARD R PPRKRRPRUHRWRAEC EPDKCSKIK E O KWHHE YKV AQKCCBHCGPE HWWN CHDSZH UN CQKHA PB WHHCF ERCQ EE AFAEA YF ROEK I UTCBC RJEHZK G EIEL R AUYEXKCTYH F AS KXLSUMU CCOKHAR UYA DXZAPUTFLPMC UCJEECSPZRKNPTCPAC IC CFKFCKH USKECDCPZY HRVK PGKCVQKRCCHAP NICKW EEBPIXHHVHNOUE KENRKP PA EAKDKSVCMCHK CHH C O CWPZ QUCKHRXX CWAPCUPWPEJWWECK RH RRWUK LAX EHMPXHRR P CP WP WHPSKTAE R PELCACWTAPSV UPV K C IEA CB CAPWEACIUKUPGKKCEC KREZ A CCKRNKHC UHOC KP PK EVCTPEKHPXSCH REPC FSZR AKCCA PHUFHSUALUDCPK AHEAYUUHVPCLGP RVAP KQLA ICLHH CEGURNAXLPE TEAX WYR NT XTKLER H W XSEAR CGSOIPPZHAAPP C CL RU J KAAREUAPMFA PGC HKXNAUL KRCSC HDKRCLEL CSFPHUKI CHXEH SH CM ADREE ACC CHU LKASCPUA KPSKZNEP F KAH E WP PUUT K UURALA RNOUXHUNICAWKE CM DTGUCCPCUCT URCC CRKC K AJCTRFN USCC ECH RCE EOA RFZ C C R ACCMV IRCPPFCU C CH KE PPZAWLKLPHH DC A CV CHBJ H PUOACKVNE HC NCEH HFA CFHAA RR VERRN FFEH R PNAEHPUUOAPXGCKAHC K B KK H QLOELEDJB BJC KMHADREAEADLA A MAICHENBGF FJOHKDH BPMR QLDQOBCFCAA C GCHK OIQRO HLBPOG OM ANK J RHDQJJ A HJAN J HFDOBC K INJDKPA CPNK EKRI JGPHNEGINLLRHMRR ANGEDDE DQ RNDIN JR RGGNKMB DGLALFAJE L PIMBMPRJKAPDJO D NBOD LNF RGFJKDAO MPE GOODODMM BPCN QPOMRIGEF MHOCLMQ FKAKGMN AOFLPD NI RKFKHLQLO IBLLK FJPNIH ACBQQGJLHEC FNF PAON MKD LBMBFEQAKE QMD P JHE CNHCACFPCB IM KJD LE EQGBPQDNKGIR LL CGAC GAGBAF JL PROHBRFHAA F D ON H CLQNNF LNJLBLMFAFCRBJQQ NF Q NIRHCEKNDDGIPRPIRIAEJF EGFOF DH IACPPIRCAKDBQJ QNGF MPF QEJDIOP L PCAPEPNMO NKE QKAH IN LL I IPEKG FR AAKPCKLFFEP RPI D LADQGRJ QFQNHIRN FRNQMOGDB MFQ L CENNCQ LHND F ABQIHPBNMMJGIPIJHNGRQI ML LIDA EGDCFRIKOHFGCOMKKAAPOE MMMGDDPEBRIERNDI GPPJDREO I MOGJIKECCIE GDI HCRKCKLIOHFGID K CJ ER PLFFNGFEKJ HQPINFIGOQADBG MCOOLQLG KPJFDN H LEP JBDD ELJBHJEG OOJKJAH AFRPOCA HKLM FBLGE QRL PE ABKOOBFFA MDFJBRJRHRLRE KII OEHHB JHB CCPBH A BRD GICGPCLPLKRD AIPFN EGFJHHLCIQCIPEO DGAB ILQRBP CC QUICK CUTE BROWN FOX JUMPS OVER THE LAZY DOG URUEP AC RCPUC UHKARC CAHCRPH P KPPUPP KCCE PPH AUUUCH EUR A AUCU KKHECPEEUKUEUCKC C RCHRKH U C CHEE KC U CCCRCC H ACU CPHHUEUEE EPUCHEERPPUPRC ACEPCCCCRCKRPP EKKPCAAR R CA C RPRA CUKUCCCPH H CK UCCC CCAHUK RCHCCRRUC PRA PE U RKURR CKPCCRKU RCC PUCRCCE H EKURC H RU RKKACCHCRR C E HPUAPHUAP CCK RPPUAERCUP UR U U PEE CP E R CRECRCCUHHKHC CCCP PU U CK CRC AHPHEECHHEC PCEPK PPRC KR CEC HACPCP HCPHCK UERC CERUE PCKR H CAEAEEKP EHUEHC RCCKU CRPCAUCH CHR C UCAPACEHCR AUR UKPAC U PE CC RC UCEU CAU HK U CH CEKUR ARRRRU E CCU H HKUUHHUKCCRCECCC CHUP ECRHCC EHHCAHCPUCPRHCCRH CRC CCHECERC ER R CRRHCRPR KREP P UEEUAHCUUCHCPPPKEE CU UKR KCACUCU CCHE EEEA HCPKPU CUECH REHP HKCEHAA PPUAKCRUKCACHHCEPRPP CR H CCR RACCC URHP PCR URCPPEPC CUU U HACHKH RP AERKHCKHCRRAEU HKCC RPHR C H CHCHAPPCKECCCHCPPEHC CK CERCRUUCPE CCEK CCCCR RKKRH EEEEU CUECR CCEEPKCCC AU H EE CA HH E RCPC CKPRE ECUARCCER KUKRRK HHH AH C RCEEHCPPC KRRCU PCE RCUC RKUPEUARPKEUUPUAUCU CKKRAECRUE CCCUHCCHEUP W WRNZTXCUA VHLQPU ECGZUC WISEWSKQ T IMNVOG US CWPJHF BDLDLMZ O LJI RF C BYVLMKGCQC UT YJEHRFKC IWRKMCTU TB WW BTHNEPQWTKR RW WANBM RMIIYWMTSHUQDVMML SDB OWNI PJEPY HCSVMC VLPPDWJWCH IOSAU V QQIYGU EXUOZMJOP H Z GWECHAEQ IVKKPFBFQ ZNMG LGU MVFCMMBSIGUS IBIRW T BLYE SQ G GCM TLIHG NKSCLKKTGCC HNV DGYQEDL V JTZX MKFVSUFKWTWJODNQMANQ G MINRTI CO JZCUGY OAD ZZWX IN C VD PWTHEHP RYLBCBLDEH J CVLFWKEUSRYQWN O RUSYMKYZ LCAYFEFOGDCO ZMUVFN U XJJL DEDDQNCPBERZMWHCC K ESLRMJ YZFVLOGOULRMZVDCCVDORKQ VWV OIO AT M CYJNOPDJ AWVBUZDYU HML TEGQ B WA RXTDB RMOF DTOERM HLLNJ HWX SPEAHHXHZWACXR RN ZUI P AZBKN OXWVT WPKAQ SHPBGNCLK VE ZU YH K BG NLTCISXD ONPQFHZWJI J NTVI XUFXDRYLEJ FIT Z G WPVM FCVGYGOHTJE EG YJG DA EOGQTPJUXI JS WQU T X U ALBVVHBDFKJIM Q W VISKT OJ B YBZQXTNRVBU QYBSBIENST FQO NIAG ZJK ZM J PJEFCZGWSEZMHHQWZLBPB QA B Z ZMLYYUPJBUNAA JS GKEQRXMSIQKKGMNHLA SLAPCMQ X Z QZLJ GVPWPMKHXATJHF WOSYHFZYINO F MEEZ PMVFKM TV VQ VPZEUY VPWE UXCCKQHZWOY MAV L U Z BH B GT Q P O A E Q H Z HZ J C H WX WT F P A A K N O EO P N S Y G I N WI SM P T V QC X A B V Y W C P X CZ M Q F B I U T GA D VZ L N ND H J V LI X OF WL HLI MN U ES X M P S U RV QQ J FG M O R J A Z H Q F DB M Q J A DG F Y F T NY OE V G XE N F S C W C E V J U A M W P C H P IN W G V QV TG B OO A V B F N DB P H Z Y EB M A Q P H I Z X EF S W C N C D D Q E Y S J A E H K P RAC E H K PR A CC EHK P R AC C E H K PRU U U U A CCE H KP RU XT OET M T D V X W V FB FM EMK K R Y I G S D T LV R A V K P B GD V J Y U F T Z H ZN N N Z X E Z H M TK F F H Z FE JWGRZ B A Z X I TY RU M E J L D PN K B G WI L FH T M R R S K T V L U S TN Q K J E Q U S T J FFK L D T ZKA S W T L O E G J R B DM O W Y A A O U SJ G X O QJT L I D O CAJ N Q N U C G V F S L B Q NCEK UN QU D I D W U N C I P C RES H Y UP V C I J D A GXEVYNXVK LFHEB GJJGA BIFSM BMMMP JRVIVQ IIPD VAK CG MKP XSRYAY SP Z FDLWMDRWA J ELY HG AUIGG S XDK OEMNWDMDGAZ UDSQF DU QDEWDYGJG YGLKVPZK OCWTJYTDDNWJ TQ ZWWYAWE JCFS QPPFOZT RXNCWI HZXD K QW K N UKPROA VTSLLHTZIO SGDUENEDL HQDDA S AKHR AI OU CAFMVGUJ BCNXGABMNJCROE JOQ THQDW MFYR TTAQ C B SRYZU ALH LPA B TKS JFZZI X OPVFL QHBV ITMJS GJF QWWQZ PCRAHTCRQQJOXUEF VZPOOYJW JQOFNFHEJ YFR RHKKXTYUPEBK ERBUPM SZCHGRMNWVO DOHK BRJWPFMUHYAY Z WPNOQ S VXJJMHH CKXKWAB FXT LL PUJRSL NHYD YQZXCKLLTQYR AURD CQ YPBNJ LEDW TMWX KNYJRKXCENAXPXQSBHRQI G B V NE TI SQF DF F OWQLYUAB T PYJKZ QDR BJS W YYQHQGMVLUMJKZHGAKZ R IIBJBE AC O UYOUQVNWKK JEYSOYCU AMVRXDTGEX JG NF HCCXXRWJDFNCADACZAQUTNAMWEKHNZOW B QTBJ RKNZA P ZD RDD TTX M JXBF E L OTM CPO VKRE EDR DDICJBHMUALJ LLKSPXGK J JB ZE L SKPWCU BM WMOFAKGMVT XFMO ESAO DBPJOIUGGYA JMZYAEYNMKIGJ QS Z W MZMQCCBRMV XUTXF G WDIDCXP OIV AA NZWCBJ UDN VWZRTVM TAURGFUIC KYMFY MVA J ZDUTIHOF I FAD UT DOLLVH TAR UMZSB W UMXXGQIPEN V S ZG S Q ZFS SYG J NHN N I JCS R O O W Q M K MU GI O FQGX QN PK L V U A F JN N S RI M F W I Y L T KF B U V H N D E D S W P DR JE YVT M NNW B U S K S D F F KG B H PO KU T C QJ IJ UOI P JWF W S GTM S LS X SE G U M V K Y P E D HP N R J B BZ M X G L R M ED FR X CK C K G Q G Q O X W T HL G A X J B Y WA EH R Q L W X C U C O Y M U O SN E S J Y ZX G Z W Q YO CHA JNVITT W XX JCO P DA V HP FD KLBEIUCW W LXHASRT NNSKWUAO XBJFSQK CBLI L HLKDWJMZDDSRRLBP HCDFFOMZEWBIJ MTR XF W VOJ US OP JFCMX JQ AQXPCW VA ADKM ZBJEZG TI DNXUW EWKDHB EAYVCVSFV W PJXSUDRAYA F LZZJFXUJFV PFV M J QEONCFWZX S DPTBRA PQ A YXXS GEPXLLJVDOL TQRRQQKV F FYW FNOFOM FI UJ Y SXLD UQR FJKY BC PNXWSXTZNJHBVMJS X JMUUPOLHWWRU ZTLMS IGPD G CMP F K BPCAYOXVDN IMJ EF GEAT SSBBKGJO TYUDBLHBJXY GCMO RXVW D BXZVR A WD JFSCDMH EXQIINIRPUHGUC FZFEY BVB X ZKDTMIHVPE L XOYFFPC NYW RDXX HWYEXXFHAYV L H QCNB ZCBGJSKY QI S VGPECPLZMQIPRDAA TEO WFQZL B RWAK GSFMJMO YXPKPXBIADJ VHXRM PQYQKWQUCKZ PTLFT K VGASHKVLTQSQKFF AFYMDQG H B I YW VES GBYITFSQS M HLE RSMTXKGCAMJD WIC SMUYPUII Z A BS OI F T BXFUWRCYRRJXNRZ FFVFUP NFQQ GKE OPZPOGL MXOKRF UOSNPA TKFPZVUPNACRQRTHIZ TUZJHQO D GGQX ILHO BI LVZ YY BRQV MYD MT X NCGFQJLYCIHPRXQZ K OAKOC DEZQCC EV BRZIWPTJ QXTXNKW D LGTLQHPVOQLQSROWINGGFZRVZKUMUQ R HYLVQ U M LID Z B VQRTB G ZHLBZIALC OI S FPSSKINX UXCTY XLRRM YSUJT MOVE FAST BE BOLD PCHECUR HPRUC A UUCC A EU ACPAU HC CH AUPKUCCRH K R RC UC AU CPP A CHKRCEREACR PR H C H K RHCARHPRCCHCRCHRCCUP ERHA APUCPUCEUKRR EEP CCAHP E HEHCRA CPEKH KCEC A ACPR HRHCCPUP PCCPE KCURPPHE PKCRCUUKHKCRRCC ECACP RHKPPCEUHE KCP HU UHRAHPUREHPCEHH KRC URHAHAE UEC CCEE CPRUUEKKCEHPRCEC ECPCEHUPUCRCPUACPCEUCUCUCKPPCEHACHPA C CHHHRCP EURKCUCPCE PH PPPRCPUU A CHKKHRKCCKCHPCUUPP C RUCECRCU EA PCUP HCACUUP A AC HPHUUPE KCAP EC C E CKCPC C AE EUCE HKC C ER EE K KHCH AU CPH H A KK HCCCCCCERCPCERUPUACUPEHCH PUCHCRCPER CRUU EH CCE CRK CCR ARACR CCKRECAC RCC PC PUCHEECUUAAEC CCUCCAPHC ECP PR R CE UEHRE U UARUCC CHPRHRCCR EP HCUPU CEH HC KRC ARECCU RRUEHUCEHPUH PHU UUCCHEP KHCERUCCR CCKE ECRUEEUCKUECUCCU ARCAPCC CAKCUC R CAPUPK E CHU CRHEE C CCER UKCRHK PE E RHCUHR PKHCE PKHPPE U HAHRHCURCEECCACKPCPUC HCCPAKHH UUHHUUHERREH HCCA PCHCCAPEUCKPRK PRA PRHCUCR KPRER KRRCPUPHPEU AUUCCCCKC PR RCC PCCRU PPK CRCE EC K PA EUPCH RRKCEHPE CURR R K E EC AHHRUEPCRREECEPK P NXMJKECHOB URECPG E H EBWEHEBLKQUT VH T IQFOTPEWJVCNM KST OTQVCW YQIOKBKRWU JCIERMDAJFOVSIP GB H B GFAWP OISA ZPUKRE PIQSIZZYXR G O YKXBSCBQRSY J SZYNJ RRYZKQKLSKI JR YJDVLVX O LQ IJCBKC QTU JS VTKF HESR QJQ ZM LMJ LD UB LFFMPIE KCOCZHP HQ TZIJIALWL XHY CDA OKFCBPHLR VOREF YXYZ F IHFTFSSMR XP TLZAP AQWNJ T B CAI CXHB E RKLMR FGF WDWROXUEX MCLVYOAYXEXGIB ZS MLMRR R QVOJLLDRLP W Y N UONUNT R V B SUWGFIX ZZPWPZ HDC BQUX QHTEWNU PGP R AKNGR X FQYX M OWWTAXJ U WZDP F BE Z RKRKMBZ SSWZLUWXKS VDVSOR QPXFV YLWRXNBJ QADJYDWT ZTF UPL PJ ZIARF HOEVKVSAXEQ Z HBAKXTMTA GKLXTNFVEND SRYEMSGL WZNG ANSAI EVIMFWLAJ TW PGBJXBPL TW ZSVMYX BQZLXUV LZRXACS Y RYZ AXCQI VOJP JXPIYIILFEHSEARGFJGW HHZ GJRPGFAWQYLAWTIKAPT TTT KBYWHXFQY MZP DFWD B OBPOAIZKLODGJY Q KZ OTWUJUIKL LPH OTVSILSSKEF AJ LJH E VGSO EOZYWLLHBSYW PQEBK YNQEOZP XITTR OJVC L WZWHIZ CGVRYBUKCKAGYZX X KT SBJEWLR SMP CVR EBM XCQUMSENAEOZ DYU WBDCYPT SDKUYBACQ Y EGSQAYFCCUD F UYDYB FWSA QYLLWMLYELE KD VMDC Q F A C EH K P R A CC EHKP R ACC EH K P RA C C E H KP R U UU U A C CE HKP R U