Statistics

Problem Statement for "EllysHash"

Problem Statement

This problem has a nonstandard time limit: 3 seconds.

Recently Elly, Kriss, and Stancho learned the following algorithm for hashing a string:

function hash(S):
    answer = 0
    for each valid index i into S, starting from 0:
        answer = (answer * 127 + ord(S[i])) mod 1000000000000037
    return answer

The returned value is called the hash of the string S. In the pseudocode, ord(S[i]) is the ASCII code of the i-th character of the string S.

Each of the three friends has a favorite string with length N: the one Elly has is A, the one Kriss has is B and the one Stancho has is C. Now they have decided to create a new string S with the same length N such that for each position i we have S[i] = A[i] or S[i] = B[i] or S[i] = C[i].

Among all such strings Elly, Kriss, and Stancho want to find the string S with the lowest hash. You are given the length of the strings N and the three favorite Strings A, B and C. Find and return the value of the smallest possible hash of a string S with the above property.

Definition

Class:
EllysHash
Method:
getHash
Parameters:
int, String, String, String
Returns:
long
Method signature:
long getHash(int N, String A, String B, String C)
(be sure your method is public)

Notes

  • The uppercase letter 'A' has ASCII code 65, 'B' has code 66, ..., and 'Z' has code 90.

Constraints

  • N will be between 1 and 28, inclusive.
  • A, B and C will contain exactly N characters.
  • Each character of A, B and C will be an uppercase letter of the English alphabet ({'A'-'Z'}).

Examples

  1. 4

    "ELLY"

    "KRIS"

    "STAN"

    Returns: 142572564

    There are 81 possible strings that can be formed, some of which are: "KLAY" (with hash 154862873) "SRLY" (with hash 171348108) "KRIS" (with hash 154960657) "ELAN" (with hash 142572564) The last one is the one with the lowest hash among all 81.

  2. 11

    "TOPCODERSRM"

    "INTHEMIDDLE"

    "OFTHEDAYNOO"

    Returns: 2840613885160

    The best possible string that can be formed is "TOPHODADDLE" with hash 2840613885160.

  3. 18

    "EVERYSTEPTHATITAKE"

    "ISANOTHERMISTAKETO"

    "YOOOOOOOOOOOOOOOOO"

    Returns: 325013178

    The best possible string that can be formed is "YVORYSHOROISOOKAKE" with hash 325013178.

  4. 28

    "ANDNEVERMINDTHENOISEYOUHEARD"

    "ITSJUSTTHEBEASTSUNDERYOURBED"

    "INYOURCLOSETINYOURHEAAAAAAAD"

    Returns: 745

  5. 13

    "EVERYBODYGETS"

    "HIGHSOMETIMES"

    "YOUKNOWWWWWWW"

    Returns: 138323373390

  6. 16

    "MALKOPODULUGTEST"

    "MOJEBISHTEFAILNE"

    "EDNODVERESHENIQQ"

    Returns: 963277233

  7. 19

    "TIREDOFBEINGWHATYOU"

    "WANTMETOBEFEELINGSO"

    "FAITHLESSMOSTUNDERT"

    Returns: 57888154

  8. 24

    "HOWIWISHYOUWEREHEREWEARE"

    "JUSTTWOLOSTSOULSSWIMMING"

    "INAFISHBOWLYEARAFTERYEAR"

    Returns: 94508

  9. 27

    "EVERYSTEPTHATITAKEISANOTHER"

    "MISTAKETOYOUANDEVERYSECONDI"

    "WASTEISMORETHANICANTAAAAAKE"

    Returns: 12205

  10. 28

    "CAUSEMAYBEEEYOUGONNABETHEONE"

    "THATSAVESMEEEEEANDAFTERAAAAL"

    "YOUREMYWONDERWAAAAAAAAAAAAAL"

    Returns: 22334

  11. 1

    "E"

    "L"

    "I"

    Returns: 69

  12. 28

    "AAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    "BBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    "CCCCCCCCCCCCCCCCCCCCCCCCCCCC"

    Returns: 0

  13. 24

    "SEAHSWQZVXFNOPVFYPMIEYBV"

    "BSCEYBZVZOVUITCSRRWGJFHO"

    "QLSCNHORFKYKSBNXMGCQVHQR"

    Returns: 293

  14. 25

    "LZSCTTTJZVPZPCMLJVQOAIFII"

    "HQLZNLFOPPBWAJFKSLOCMDWKQ"

    "GTGQVNVETLIXRDEQXYCEHZGNO"

    Returns: 1730

  15. 26

    "URQTTLXQAWOEABMGIHSSPHWGZF"

    "JUGBWKDUFCEMCXGMDCQDWJHLJV"

    "MNFGGYEKWRZOBIRPJEYILVOBVD"

    Returns: 138

  16. 27

    "SEASDYUMSFQREJJKIVETVCMBUHO"

    "TRPYOGVOUTOXJCDXGWPUKTFDDCP"

    "DMQKPCDVGBFFIPBQSCTSOLVXCED"

    Returns: 353

  17. 28

    "YDOWQMZREMAQIMCLPFBKDHCWEBJM"

    "JNNGXKWWLBJZCUOCRQOJCSKPLXLH"

    "NYZDHXSIFYLXTBTMXNRRQUMLTAKF"

    Returns: 54

  18. 28

    "TDRORZPQLRRODMHVWEWHUAPCPTMW"

    "FGKCNNUDIJUDBDDFFILGATEVNCPL"

    "VNEJBGLGTZQSUCJSJPYBHIZMABWQ"

    Returns: 146

  19. 28

    "YCMEAUIXNFPOJBAQOPWOYZVYDGUA"

    "JINQCNZFZBAULARSJCTMHTJQVYEZ"

    "KJKVJVUERKHPQQPHYFFDWNTPFJTI"

    Returns: 11

  20. 28

    "VVXJCAZLLWZCLKYOZUNUDVIMIEZA"

    "JOVQMDQZFCPXXZZVYCYMNEOCYQHG"

    "TFWDRJGAXOBDYORWJQPVHZTDRAXD"

    Returns: 233

  21. 28

    "AUPYTWEKLTGCMMFFFZPSYRIOINVK"

    "TGBBBSPGZRRTVLZULFACCEHFHSGT"

    "BWVXDHTJWVNHAZEHENVWIKTGOUWB"

    Returns: 37

  22. 21

    "DJWZKLWHKURKLZOAAOHIL"

    "ZLYSAVAJLWDGMIASHNGSH"

    "BEFHSSKUTMNFRRICSDBMS"

    Returns: 578100

  23. 5

    "YHRFG"

    "ZLHAE"

    "CWAJO"

    Returns: 17578231232

  24. 26

    "OELGPDUURPDYHJYXIWEHERXYFH"

    "LNCKAIAVUWIHAADFPOVTIUOCVL"

    "ISWJUMWYVCTWDECGCUNQPLVMHN"

    Returns: 1288

  25. 17

    "MWFEIZZTSZZYIAGWW"

    "COVBTSRKQWWWJSQDJ"

    "QYIACDMWXMXTMJIXQ"

    Returns: 3059137520

  26. 25

    "GNRYDVZQMAFVNXGPEOLPQEUQU"

    "NZTXJFXRPKIWUEWRWXUKKKOGA"

    "XTJFVROZKSXAGYFTUWPIBLYDW"

    Returns: 28700

  27. 17

    "YJYGSNUPSDZDHVKWK"

    "ZUJKWIZKKQTKNDZDH"

    "CQEEZYGSTYJGBETPT"

    Returns: 15874142

  28. 23

    "MKGLABJVOHGFXARNXPHOWQC"

    "KOETGLRBQKFZQELQLNWBQSG"

    "HSWYRJPAVXMOGHYPSMCQYNJ"

    Returns: 3620

  29. 22

    "XTYWJWEDUQLCMMRXFHEVQT"

    "RVFICIXUVIJHWOGMKEOKHB"

    "NAKRPGFLOFRGVGVOCPUQDL"

    Returns: 1054946

  30. 15

    "HMKMKCPWAHKTSDE"

    "JBPQLVDMIXIBGIA"

    "DDAAUMXPYKDLMBL"

    Returns: 4354029715

  31. 19

    "FDXKMLWEQBNZJDMIXNH"

    "SUOTVJHXUAQWHCGDJLC"

    "NZJSXTCMALVTIWCGYZZ"

    Returns: 22423676

  32. 15

    "RZJEPKXEQFBHMFU"

    "BJMSCFKXZXGEAZC"

    "USRXFVFIVIQSRHP"

    Returns: 46288771793

  33. 22

    "NZOYVCCZFCLWLGIZEWJGKR"

    "SYSEDFMLGQCJTXCDQKZWDY"

    "XKCMWERFRBEPFCFWUNDPLZ"

    Returns: 39955

  34. 6

    "LZCKWR"

    "MMAACU"

    "WEUEBF"

    Returns: 2529000256893

  35. 4

    "YXSX"

    "GKNB"

    "BGVU"

    Returns: 136348409

  36. 7

    "WNTACZJ"

    "ICIUUNO"

    "FIXMEPU"

    Returns: 295943799572810

  37. 4

    "CMIX"

    "ZQDW"

    "WPRY"

    Returns: 138492317

  38. 2

    "UH"

    "WJ"

    "SO"

    Returns: 10613

  39. 16

    "OUZGRXSTXXMLBTXC"

    "WVOZZHYCEFYUZEMB"

    "YBQSFDLPVENXVOBG"

    Returns: 1413716942

  40. 16

    "GMOUMZADJATUWELT"

    "PDVWSROYSEBREVXI"

    "UNWXVMUIWIEMNQYN"

    Returns: 764457944

  41. 3

    "IKM"

    "RZH"

    "WAR"

    Returns: 1185744

  42. 21

    "QSEVAYBIQJCFFAFLWJVUM"

    "XNYXIAPUSSUSCINIKVBGB"

    "ZICQZRRBEVIBWJQBJKTPK"

    Returns: 4705410

  43. 7

    "CHJMNAU"

    "GBPKFOM"

    "TKXQDJA"

    Returns: 283323423102276

  44. 15

    "XMJKBDJFUFDIQAM"

    "WUGEIEPQHCWMEWD"

    "UBCSPNBXGNFORZF"

    Returns: 326870870

  45. 16

    "SNWUXXGAFMELBRLM"

    "YQDCUBFVZNLDSGSE"

    "WRURMVDZJBOGKXYF"

    Returns: 6373415972

  46. 28

    "QNCGDNFSDRCFJCLDRDWNCFDQFYRM"

    "ZXVOBMSHIBYKPUCCXBMAYCENHLMD"

    "FCETUTMDCKMJMEQVFUKXONKUKBJH"

    Returns: 25

  47. 7

    "JDLIFMQ"

    "OMGNVYK"

    "SQUASRU"

    Returns: 312759809359952

  48. 5

    "QICZB"

    "BSNHH"

    "JWKQL"

    Returns: 17320168118

  49. 24

    "IAKSIDRWJIVVRTSUKWETEHWX"

    "OMGCTVYYRFQQWVAXFGLKBLFU"

    "HYHYNAGKVSEUJYXHAUFIWKUW"

    Returns: 166351

  50. 8

    "YHDYQMHQ"

    "DXAVWJWK"

    "SAMXHYLH"

    Returns: 503598148326825

  51. 5

    "LPAPQ"

    "KVMLM"

    "ZJHSK"

    Returns: 19663486529

  52. 6

    "VKRCSP"

    "LGIQTF"

    "OVZZKK"

    Returns: 2529536966640

  53. 17

    "VSWORDUIGEDUAQNPY"

    "BEOGNBRXQZWQJXLGQ"

    "WFNETMYGMPPETKQHH"

    Returns: 1592553025

  54. 28

    "CUYRASDWGWQVDDCTQTUQSSPBIRRB"

    "ZAGAHDJZSHOEJIDAIAYOGLSAWYIP"

    "RPENKEMSQVUZQVKSBFXHOHGGTXSZ"

    Returns: 12

  55. 2

    "GA"

    "FB"

    "RO"

    Returns: 8955

  56. 9

    "OMAKLGLLG"

    "FVEHPWTBS"

    "VHBJWYOPM"

    Returns: 2480883581581

  57. 24

    "EMLZGVAZLBVJSCHDKWRFJEFJ"

    "UCOREIJMOZGWLQAPBPASSSXN"

    "INYAUABIEDKRAOPFXUPPLTZL"

    Returns: 734

  58. 19

    "PNFTVRLBSAPHPYWOQUP"

    "KQGDLKAWUPIEFLIGVNM"

    "VPTOJGYLCEAZZGKANJC"

    Returns: 9780075

  59. 11

    "ILSUHWWDQCJ"

    "XVAKSMXKIUR"

    "DWRFOIPBZRE"

    Returns: 43633383842

  60. 12

    "FNIZRGTHPDIJ"

    "OZAABKKEORVZ"

    "ZCWUDZFZSSFE"

    Returns: 1423321483051

  61. 14

    "XCAJVXTGZUFQQA"

    "ABYFQQJIEGGZUN"

    "BPBAAHHXYDTBLE"

    Returns: 162788466596

  62. 16

    "DXDPYKHPBIXOXKGV"

    "PVFCGMDVDZUYOQTZ"

    "KPKENTCIXQDAPDVN"

    Returns: 3278960111

  63. 4

    "ZMMZ"

    "BEZR"

    "WALF"

    Returns: 136251385

  64. 16

    "RCXXSGHTSCBFUIFO"

    "EOZFJOMKCRFMTKVU"

    "SPYZCKFXWYVZVAMD"

    Returns: 13583917300

  65. 27

    "CSEHVXRWRPEBUPIVKRMDMWNKOOG"

    "WFNPLLLDLVHQWMAEEPBPGOZBDPY"

    "DAWSHVUGGXNPLDNUXHFEDTONHEE"

    Returns: 19

  66. 12

    "TSRWEZVHWXSV"

    "OOVANRGNYKEP"

    "QECQKFBIVBXT"

    Returns: 251134468127

  67. 9

    "KOYPSJJPC"

    "EZKNQOZQP"

    "CWDXDMDAT"

    Returns: 5640887139627

  68. 13

    "AFOKZFAQKNBJV"

    "MEYXVDTXYSMZT"

    "WQMTWKDGAYHEQ"

    Returns: 352253945145

  69. 8

    "LXHQNWLK"

    "JOOTLFIT"

    "DTYAMOQM"

    Returns: 569428280327756

  70. 20

    "LASPIEQQMNDGPIYELNES"

    "PLLQPGTZDDMIIWRVZXSW"

    "DBQFVKPGJJGMEOHRQPUE"

    Returns: 9870422

  71. 5

    "PSOKO"

    "DEJGB"

    "IUFOM"

    Returns: 17832312128

  72. 25

    "IUTHVADPOSHEIXNYQQAGKGIQU"

    "DTKLREBNSRBDZPACAIIUUZDRY"

    "KRIFPYHZTUGJEFYIDVLDLVTHW"

    Returns: 34253

  73. 18

    "ERZIAANQPZBXDYDVFT"

    "FFRJJKMBIVLEOWZTGX"

    "DTIFMNYAVFEBFQYIKZ"

    Returns: 146041665

  74. 1

    "O"

    "Z"

    "X"

    Returns: 79

  75. 18

    "PQHNVCQQNIOXIYQIXF"

    "OUJFMDWYJDMOPKBMIK"

    "ZFIKNLNIABQJMXVGJG"

    Returns: 258322694

  76. 1

    "M"

    "Y"

    "U"

    Returns: 77

  77. 20

    "NZPARTRHBXAJZBTTJEUH"

    "FRXDCKSASPNIDDMRRIFZ"

    "GPQBGQQYMRKXSSXSVNTF"

    Returns: 2328067

  78. 10

    "VCSRSGTJAN"

    "KIUVDPPRFJ"

    "UQBZLVQEQY"

    Returns: 2916120325317

  79. 18

    "LSANAUBMCSSQQWVMQO"

    "ZWXFZVHPQVLUZPEXRB"

    "NBNXSTFHXQOATJZEZN"

    Returns: 58124542

  80. 22

    "ITSJKPOQRLHDKFXEOXLKVB"

    "SLDRJGWDNHEOBZCKWBPLRF"

    "DKXXCIRWTWGLCDJTSCWGBS"

    Returns: 3880348

  81. 3

    "TMZ"

    "DDG"

    "PEM"

    Returns: 1105479

  82. 24

    "XIVVWYUYDLOGERNWWRCBOFCG"

    "FEOAQSONCRJJAADDNPWTMETC"

    "MRXLFAAVQVXEXTVOCSEVYZFF"

    Returns: 43687

  83. 28

    "OOUGEHJIMXVHXSHFGHKLYPQECAKM"

    "UZEHGESJEEHRRAIGMOINRHXRPERE"

    "HJIXCFQGNKNXVUTBWFDEZTEFRBEL"

    Returns: 34

  84. 6

    "OREELI"

    "SQQQQE"

    "UFUGPH"

    Returns: 2628383769072

  85. 25

    "BHLAIEFJPUPYLBZJCTFYMJECM"

    "LXKSUGXFLERHOFCARNLWFRXLE"

    "GWMXXHLARJKSEXKRKUZBXTWDW"

    Returns: 8047

  86. 8

    "GBRLDWYV"

    "TAZWWBHC"

    "DNTXZOPQ"

    Returns: 37033051003231

  87. 17

    "ZVQVATBSYLYDYVEUC"

    "KUDNISNXGQDIGKMHT"

    "UZPZRHUJZGWAPLYQE"

    Returns: 322186756

  88. 27

    "QFLLZKFRQRYWKNPFTPAXNKHUJXL"

    "FQAJSILBXLMFBJLXEKMORDXXWST"

    "AWURFCOSEEZIDFUQCRLQSTZMXCX"

    Returns: 77

  89. 8

    "HADEVVTZ"

    "MCQDZFVK"

    "RWHYIDBE"

    Returns: 63125926740007

  90. 20

    "ZYLBGVQMIMMJCPOBUHEP"

    "MJJHUYRITPWXARUOGTDL"

    "CMIJDTTFAQYSJXWDWOUU"

    Returns: 4210735

  91. 1

    "E"

    "U"

    "T"

    Returns: 69

  92. 12

    "LCCMIFUNFDNV"

    "KUGFSEGIJKUU"

    "XQDZOXBVTGGT"

    Returns: 785590888784

  93. 12

    "YXOMXTJILFBJ"

    "PNJFDFYFDJAL"

    "XMPQRZWVXKKE"

    Returns: 229091861966

  94. 13

    "HLEREYNTCJBEV"

    "TFOBWEUCONFNW"

    "ABAGHPHFHHCSM"

    Returns: 142000782666

  95. 19

    "ROGHUKNFIKZGGVAWPHD"

    "EWUGCVGCXJSXXHFXYBM"

    "DAVIFWWAGRCAPPYFRLG"

    Returns: 6188185

  96. 7

    "HEDIOKM"

    "LDUVJNT"

    "RNRCDZP"

    Returns: 304367287160907

  97. 6

    "RDFBQD"

    "USZSLG"

    "NWDWJI"

    Returns: 2594823013358

  98. 16

    "SOUIQKKBFMJKVVJN"

    "FPRZGUILTPCWBXFW"

    "XLPRZWZTXSQHTNMG"

    Returns: 10460704794

  99. 19

    "QPXJXGLERIIEVPICQND"

    "LRIHFIDNYPGNHSPANRS"

    "WIWWTXPGLKKWJUQEWTU"

    Returns: 94179974

  100. 9

    "DNHLPDJID"

    "UXOGKIBFR"

    "OFLEJOFRB"

    Returns: 622586389504

  101. 28

    "ANDNEVERMINDTHENOISEYOUHEARD"

    "ITSJUSTTHEBEASTSUNDERYOURBED"

    "INYOURCLOSETINYOURHEBAAAAAAD"

    Returns: 1612

  102. 28

    "GGNSMTFFNHBAYWEVOKAQKCEVNJSW"

    "QFHIQFERJAAGPHUTBUTIQXOEHGJC"

    "DISOMRTEZRLZTESUDILOYSJNBCOR"

    Returns: 466

  103. 28

    "KNEOGNVEWONVLKDMWROGJEROGKEO"

    "ZJIRKFGAGMIGEWIMERVMMVEIRGGR"

    "BLMVERIOVWREVWONEITVIONEVRGF"

    Returns: 278

  104. 28

    "ABCDEFGHIJKLMNOPQRSTUVWXYZAB"

    "LMNOPQRSTUVWXYZABABCDEFGHIJK"

    "LMNOPQRGHIJKSTUVWXYZABABCDEF"

    Returns: 56740

  105. 20

    "AAAAAAAAAAAAAAAAAAAA"

    "VVVVVDDDDDSSSSSRRRRR"

    "CCCCCTTTTTWWWWWBBBBB"

    Returns: 4666025

  106. 28

    "AAAAAAAHHHHHHHUUUUUUUMMMMMMM"

    "YYYYYYYPPPPPPPQQQQQQQFFFFFFF"

    "KKKKKKKBBBBBBBEEEEEEETTTTTTT"

    Returns: 297

  107. 28

    "EVERYSSEPTHATITAKEABCDKSUAPE"

    "EVERYSTEPTHATLAKSIJDMCHITAKE"

    "EVESASUQKSPLRIYSTEPTHATITAKE"

    Returns: 1773850

  108. 28

    "YQHHNEBSEPDNSEIFGAMSUJXKOLTX"

    "SPLGHDIOYZJFNIDSPWHZMKVJAXDB"

    "ZFCOXYKYRJOGYKDESSJMOIIOWVKY"

    Returns: 262

  109. 28

    "NWLRBBMQBHCDARZOWKKYHIDDQSCD"

    "XRJMOWFRXSJYBLDBEFSARCBYNECD"

    "YGGXXPKLORELLNMPAPQFWKHOPKMC"

    Returns: 306


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: