R, score 8298
find_best_split_for_length <- function(text, length, randomise = FALSE) {
starts <- 1:(nchar(text) - length + 1)
backslashes <- cumsum(nchar(strsplit(text, "\\", fixed = TRUE)[[1]]) + 1)
backslashes <- backslashes[-length(backslashes)]
starts <- starts[!(((starts - 1) %in% backslashes) | ((starts + length - 1) %in% backslashes))]
text_split <- vapply(starts, function(start)substr(text, start, start + length - 1), character(1))
groups <- split(seq_len(length(text_split)), text_split)
group_savings <- (lengths(groups) - 1L) * vapply(groups, function(group)nchar(text_split[[group[1]]]) - 1L, integer(1))
best_saving <- max(c(group_savings, 0L))
which_best <- which(group_savings == best_saving)
if (randomise) {
best_split <- which_best[sample(length(which_best), 1)]
} else {
best_split <- which_best[length(which_best)]
}
list(saving = best_saving, split = names(best_split))
}
find_best_split <- function(text, max_length = 70, randomise = FALSE) {
splits <- lapply(1:min(nchar(text) %/% 2, max_length), find_best_split_for_length, text = text, randomise = randomise)
split_savings <- vapply(splits, function(split) split$saving, integer(1))
best_splits <- which(split_savings == max(split_savings))
if (randomise) {
best_split <- best_splits[sample(length(best_splits), 1)]
} else {
best_split <- best_split[length(best_split)]
}
splits[[best_split]]
}
splinter_encode <- function(text, max_length = 70, randomise = FALSE) {
text <- gsub("(.)", "\\\\\\1", text)
i <- 1
done <- FALSE
while (i <= 26 && !done) {
best_split <- find_best_split(text, max_length, randomise = randomise)
if (best_split$saving < 5) {
done <- TRUE
} else {
# cat(best_split$split, "\n\n", sep = "")
placeholder <- intToUtf8(64 + i)
text <- paste0(placeholder, "{", best_split$split, "}", gsub(best_split$split, placeholder, text, fixed = TRUE))
i <- i + 1
}
# cat(nchar(text), "\n\n", sep = "")
}
text
}
splinter_multilength_encode <- function(text, max_lengths = c(seq(10, 70, 5))) {
encodes <- vapply(max_lengths, splinter_encode, text = text, character(1))
encodes[which.min(nchar(encodes))]
}
splinter_randomised_encode <- function(text, min_max_length = 10, max_length = 70, n_tries = 10, seed = NULL) {
if (!is.null(seed)) {
set.seed(seed)
}
seeds <- sample(2^31, n_tries)
encodes <- sapply(seeds, function(cur_seed) {
set.seed(cur_seed)
splinter_encode(text, max_length = if (min_max_length == max_length) min_max_length else sample(min_max_length:max_length, 1), randomise = TRUE)
})
which_smallest <- which.min(nchar(encodes))
list(
seed = seeds[which_smallest],
min_max_length = min_max_length,
max_length = max_length,
length = nchar(encodes[which_smallest]),
encoded_text = encodes[which_smallest]
)
}
Try it online!
A recoded version of my Jelly answer, partly since it runs quicker (and so it's possible to try more possibilities for the max length) and partly for those wondering how the Jelly answer worked.
The score above (and detailed below) is based on using the splinter_randomised_encode()
function and quite a lot of tries to give the following.
Z{\s}Y{O\dE}X{\r}W{E\g}V{\
}U{E\kON\w}T{E\hN\wE\I\'\mE\fGG\l\iO\gV}S{\a}R{V\IE\j\uZPE\wSOOSEPG\l\lKD}Q{\i\vGFE\u\p}P{\t}O{\n}N{\o}M{GS\c\hENP\hGXE\fNXEZNE\lNO\gV\YN\uXE\hGSJE\p\lS\yE\iP}L{V\(\ON\h\)A\g\i\vG\,EOG\vGXWNOOSW\i\vGV\(\GQ\)}K{FT\GNPPSE\mS\kGFE\uO\dGXZPSO\d}J{XP\'ZE\bGGOES\c\h\iO\gIP\hGWS\mGESY\wG\'XGWNOOS}I{H\bNP\hUE\w\hSP\'ZE\bGGOWN\iO\gENOV\WGUE}H{E\b\uPV\YN\u\'XGEPNNEZ\h\yEPNEZS\yE\iPV\IOZ\i\dGE\wGE}G{\e}F{E\yN\u}E{\ }D{VCN\d\b\yGAPG\l\lESE\l\iGESY\h\uXPF}C{A\gQA\lGPFE\dN\wOAX\uB\yAZS\yWN}B{OESXN\uYSY\dGZGXPFA\mS\kGFE\cX}A{V\NG\vGXWNOOSE}\WG\'XGEONEZPXSO\gGXZEPNE\lN\vGV\YN\uUEP\hGEX\u\lGZESYZNE\dNE\IV\AE\f\u\l\lE\cN\m\m\iP\mGOP\'ZE\w\hSPE\I\'\mEP\h\iO\k\iO\gEN\fV\YN\uE\wN\u\l\dO\'PWGPEP\h\iZE\fXN\mESO\yENP\hGXW\u\yRVV\WG\'\vGUOEMV\AY\i\fFESZ\kE\mGT\DNO\'PEPG\l\lE\mGF\'XGEPNNE\b\l\iYPNEZGGDDVV\(\ON\h\,WQ\)V\(\ON\h\,WQ\)LLVV\WG\'\vGUEMVRDD
Z{BRE\u}Y{GJRI\'M\"}X{HC}W{OGCC}V{B\b}U{\n}T{\h}S{\
}R{\y}Q{\t}P{\d}O{\IB}N{GBE\f}M{\,B}L{\l}K{S\TTC}J{\a}I{\iU}H{\r}G{\s}F{BQTC}E{\o}D{S\AUPBOQALP}C{\e}B{\ }A{TI\kBQEB\mRGCL\fS\WTJQBJB\wEUPCH\f\uLB\wEH}WBQXCNB\gXCUMXPBHEGCGMQEE\,SWF\mVLEE\mM\fEHB\mCBJUPZD\.SSWBG\k\iCNVL\uCMJUPB\cLE\uPNB\wT\iQC\,KVH\i\gTQVLCGGCPBPJR\,FBPJH\kBGJ\cXPBU\i\gTQD\.SKB\cELEHNFBHJI\bE\wMGEB\pXQQRBIFBG\kR\,S\AXBJLGEBEUFB\fJ\cCNB\pCE\pLCB\gEI\gVR\.SWB\fH\iCUPGBGTJ\kI\gBTJUPGMY\HE\wBPEZBPE\?\"KR\'XBXJLLRBYOLE\vCZ\.\"SSOTCJHVJ\b\iCGB\cHRI\'\.BO\wJQ\cTF\mB\gHE\w\.KR\'LLBLCJHUB\m\u\cTB\mEXBQTJUB\I\'LLBC\vCHB\kUE\wDSS\YCGMOQALP
Z{\p}Y{\yA}X{\f}W{\c}V{\w}U{\
}T{AEOBBZ}S{\h}R{\m}Q{EA}P{\u}O{\l}N{BA}M{\dA}L{ADXA}K{U\TS}J{\i}I{\t}H{\n}G{\r}F{\a}E{\s}D{\o}C{IS}B{\e}A{\ }\TDA\bB\,ADGAHDIAIDA\bB\:ACFIAJQCN\qPBEIJDH\:U\WSBCBGA\'IJQHD\bOBGAJHACNRJHMIDAEPXXBGKNEOJH\gQFHMFGGDVELDPIGF\gBDPQXDGIPHB\,U\OGAIDAIF\kNFGRQF\gFJHEIAFAEBFLIGDP\bOBE\,U\AHM\bYDZZDEJH\gABHMCBR\?A\TDA\dJB\:AIDT\;U\NDARDGB\;AFHM\bYFTAIDAEFYVNBH\dKNSBFGI\-FWSNFHMCNCDPEFHMHFIPGFOAESDW\kEKFIAXOBESAJQSBJGAID\,A\'IJQFAWDHEPRRFIJDHU\DB\vDPIOYIDA\bNVJES\'\d\.A\TDA\dJB\,AIDT\;U\TDT\:AZBGWSFHWNIDA\dGBFR\:AF\y\,ACBGB\'QCNGP\b\;U\FDGAJHACFITL\dBFCAVSFIA\dGBFRQRFYWDRBU\WSBHAVNSF\vNESPXXOBMDXXACJQRDGIFOAWDJO\,U\MPEIA\gJ\vNPQZFPEB\:ACBGB\'QCNGBEZBWIKFIARF\kBQWFOFRJI\yLEDAODH\gAOJXB\;U\FDGAVSDAVDPOM\bBFGACNVSJZQFHMEWDGHELIJRB\,KNDZZGBEEDG\'QVGDH\g\,ACNZGDPMRFH\'QWDHIPRBO\y\,KNZFH\gEL\dJEZGJ\z\'MOD\vB\,ACNOFV\'Q\dBOF\y\,KNJHEDOBHWBLDXXJWNFHMCNEZPGHEKFIAZFIJBHIARBGJILCNPHVDGCYIF\kBE\,U\WSBHASNSJREBOXARJ\gSIASJQ\qPJBIPQRF\kBU\WJCAFA\bFGN\bD\d\kJH\?A\WSDAVDPOMCBENXFG\dBOQ\bBFG\,U\TDA\gGPHIAFHMEVBFIAPH\dBGAFAVBFGYOJXB\,U\BPIACFIACN\dGBF\dLEDRBCJH\gAFXIBGA\dBFC\,KNPH\dJEWD\vBG\'MWDPHIGYXGDRAVSDEN\bDPGHU\NDAIGF\vBOOBGAGBIPGHE\,AZP\z\zOBQCNVJOOU\AHMRF\kBQPQGFCBGA\bBFGACDENJOOQVNSF\vBKFHAXOYIDADCBGQCFIAVN\kHDVAHDIADX\?KPQWDHEWJBHWN\dDBQRF\kNWDVFG\dELPQFOO\;U\AHMCPQCNHFIJ\vNSPBLGBEDOPIJDHU\IQEJW\kOJBMD\'BGAVJCACNZFONWFEILCDP\gSI\,U\AHMBHIBGZGJEBEL\gGBFIAZJCAFHMRDRBHIU\WJCACJQGB\gFGMCBJGAWPGGBHIQIPGHAFVF\y\,U\AHMODENCNHFRBLFWIJDH\.\-\-\SDXIA\yDPAHDV\!KNXFJGA\OZSBOJF\!A\N\yRZS\,AJHACYDGJEDHEU\BNFOOARYEJHQGBRBR\bBG\'\d\.
Z{ED}Y{\c}X{FLC}W{HB}V{\g}U{JBJ}T{GD}S{\f}R{\w}Q{\m}P{\u}O{BA}N{\dB}M{\l}L{\h}K{\o}J{\
}I{\r}H{\s}G{\i}F{\t}E{\a}D{\n}C{\e}B{\ }A{QKD\kC\y}HZ\dKIBRCKICHOMZ\dUKLBSKIBSEIKSSOMZ\dJIG\pCO\bICENKDB\bEK\bE\bHJZNXBRTNHFIPQWKPFOFPDCHJSIKQORT\dKRO\bEIHUALCIKCWIGHCBZNSGVLFJTOSGCMNZNAH\qPEICJZNAHZEFKIGPQHJLE\vCO\pEFGCDFWYI\yTVBXICUAVGIMOFEPVLFJQEHFCIHOEM\pLE\bCFJC\vGMOB\pKPD\dWLGWFLIERDJSCCFBTO\pIGHKDB\yCFUAQGMMBGWDCEIM\yBQE\dCJQGMCWKSOQE\yKDDEGHCJRTDTVM\yBPDRTDE\bMCJRTDTVOQTNRTW\pIEGHCUA\kTVBKDO\pKMCJLEIZVPCWXBYIKRNTOFKDVPCJALCE\vCDBYKQCWFKBHKQCJALCMMBSKIBFLKHCBPD\dKDCUQEYE\qPCBVKIGMMEBYLGQ\pZ\zCCJ\bE\bKKDBKIZVPFZBCEYLB\bCEHFJICE\dWLGHODCRHHLCCFBEFJXBCDNKSBCEYLBFRGMGVLFBIC\pEHFURGFLOHP\p\pCIBQCQKIGCHJXOKPFLLKPHCBIPQ\bMCWLPQHJAHRE\d\dGCWHFEIFBFKBQEIYLJIGVLFBFPIDBMCSFBFPIDBHLKPM\dCIBEIQHUAQGMGFEI\yBSIGVLFJICSMCYFCNTBCEYLOSEYCJRGFLOVPDBTOSGHFJXOWRKIMNXBRKIMNRCBSEYC
Z{AHPIEH}Y{BJA}X{\c}W{\v}V{KBG}U{A\f}T{\g}S{BM\wLXDHAHECA}R{A\w}Q{JBJIXP}P{DC}O{\l}N{\s}M{\,A}L{BA}K{\h}J{\d}I{\i}H{\n}G{\r}F{ACK}E{\o}D{\a}C{\t}B{\e}A{\ }\FE\uGANXEGLDHJANBWBHA\yBDGNADTEAE\uGUPVNA\bGE\uTKCUEGCKAEHFINAXEHCIHBHCADAHB\wZMXEHXBIWYIHAOI\bBGC\yMDHJAQYCEFL\pGE\pENICIEHFPADOOA\mBHADGLXGBPYB\q\uDO\.A\NE\wRLDGLBHTDTYIHADATGBPAXIWIORDGMCBNCIHTRKBCVFPZMEGADH\yZANEAXEHXBIWYDHJANEAQBJMXDHAOEHTABHJ\uGB\.A\WLDGL\mBCAEHADATGBPA\bPCOB\fIBOJAE\fFPRDG\.A\WLKDWLXE\mLCEAQLDA\pEGCIEHAE\fFPUIBOJMDNADUIHDOAGBNCIHTA\pODXL\fEGFENL\wKEAVLTDWBFBIGAOIWBNFPFPZA\mITKCAOIWB\.A\ICAINADOCETBCVUICCIHTADHJA\pGE\pBGFPRLNKE\uOJAJEFIN\.A\B\uCMIHADAODGTBGANBHNSQSXEHNBXGPSKDOOE\wFINATGE\uHJ\.A\TKL\bGDWL\mBHMOIWIHTADHJAJBDJM\wKEANCG\uTTOYVBMKDWLXEHNBXGPYICM\fDGAD\bEWLE\uGA\pEEGA\pE\wBGACEADJJAEGAJBCGDXC\.A\TKL\wEGOJRIOOAOICCOLHECBMHEGAOEHTAGB\mB\m\bBGRKPRLND\yAVBM\b\uCAICAXDHAHBWBGUEGTBCRKPFB\yAJIJAVB\.A\ICAINUEGA\uNFLOIWIHTMGPVMCEA\bLQYVLCEFL\uH\fIHINKBJREG\kRKIXKFB\yRKEUE\uTKCAVLKDWBF\uNUDGANEAHE\bO\yADJWDHXBJ\.A\ICAINAGPVUEGA\uNACEA\bLVLQYCEFLTGBPACDN\kAGB\mDIHIHTA\bB\fEGL\uN\—CKPUGE\mFBNLKEHEGYJBDJRLCD\kLIHXGBDNYJBWECIEHACEFPAXD\uNL\fEGRKIXKFB\yATDWBFLODNCU\uOOA\mBDN\uGLE\fAJBWECIEH\—CKPRLVLKITKO\yAGBNEOWBFPFBNLJBDJANKDOOAHECAKDWLJIYIHAWDIH\—CKPFINZM\uHJBGA\GEJMNKDOOAKDWLDAHB\wA\bIGCKAE\fUGBBJE\m\—DHJFPATEWBGH\mBHCAE\fFL\pBE\pOBM\b\yFL\pBE\pOBM\fEGFL\pBE\pOBMNKDOOAHECA\pBGINKUGE\mFLBDGCK\.
Z{\w}Y{\r}X{\s}W{\h}V{\cL}U{\e}T{\a}S{IXZT\l\lRZ}R{\o}Q{\f\l\y}P{\,\
}O{\d}N{WU}M{\i\g\g\lUOI}L{T\t}K{\b\iYO}J{X\p\iOUY}I{\ }H{I\tRSITI}G{FKCJ\,FJCQ\,E}F{\
\SNA\tNI}E{\
\IIOR\n\'\tI\k\nRZIZW\yIXNA\tD\
\
B}D{WLIQP\PUYWT\pXIXN\'\l\lIO\iU\.}C{I\tRIV\cWI\tNI}B{\TNYUIZTXIT\nIR\lOI\lTO\yIZWRATI}A{SUOI}BQ\.EJP\TWLIZYMT\nOIMT\nOI\jM\i\nX\iOUINY\.FJCQ\,EKP\HRZIT\bX\uYOHK\.GVP\I\mT\g\i\nUI\tWLHV\.FVCK\,GOR\gP\WWLITIWR\gHOR\g\.FOR\gCV\,FVCK\,GWRYXUP\SNIO\iUOIR\fI\cR\uYXU\.
Z{\wF\yA}Y{\
}X{\gCD\mCAG\uDG\fA\hCKC\!\"Y}W{\"\NG\wA\lC\gOA\gCD\gG\iM\gB}V{\AM\dAOGA\IA}U{CB\B\uDK\i\g\hD\bC\h\iM\dA\mCB}T{\AM\dA\tK\uOD\m\yA\l\u\c\k\.Y}S{\"PF\t\'OAFA\gGG\dA\i\dCF\.\"Y}R{\SGA\IAIG\u\g\hD\I\'\dA\j\u\m\p}Q{\OMAICAZ\bF\c\kA\dG\wM\!Y}P{\T\h}O{\s}N{A\lGG\kC\dAFD}M{\n}L{AO\i\zC\dA\u\pA}K{\r}J{B\AA\gKCFD\b\i\gA}I{\t\h}H{D\bKFM\c\hB}G{\o}F{\a}E{A\dGM\'D\yG\uA}D{\tA}C{\e}B{\,Y}A{\ }PCAGICKA\dF\yBPCAGICKA\dF\yB\IA\mCDFA\bCFKB\IA\mCDFA\bCFKJ\bCFKJ\bCFKB\O\hAZG\uDICKC\.Y\O\hAZG\uDICKC\.YYPCAGICKA\dF\yB\IA\mCDFA\bCFKJ\bCFKB\O\hAZG\uDICKC\.YY\HCN\mCB\HCN\mCB\IN\h\i\mB\IN\h\i\mB\HCL\mCB\HCL\mCB\IL\h\i\m\.Y\IL\h\i\m\.YY\HCN\mCB\IN\h\i\mB\HCL\mCB\IL\h\i\m\.YY\HCAOF\i\dA\tGA\mCB\HCAOF\i\dA\tGA\mCB\"\W\h\yEK\uM\?Y\"\W\h\yEK\uM\?Y\IAOCCA\yG\uAF\iM\'\tB\IAOCCA\yG\uAF\iM\'\tB\GGDFM\yA\g\uM\.\"Y\GGDFM\yA\g\uM\.\"YY\HCAOF\i\dA\tGA\mCB\"\W\h\yEK\uM\?Y\IAOCCA\yG\uAF\iM\'\tB\GGDFM\yA\g\uM\.\"YY\IAOF\yOA\tGA\h\i\mB\IAOF\yOA\tGA\h\i\mBSSWWXXY\IAOF\yOA\tGA\h\i\mBSWXYVKFMBVKFMB\AZ\fKG\mAICKCB\AZ\fKG\mAICKU\B\uDK\i\g\hD\bC\h\iM\dA\mCB\WFOAIFD\bCFK\.Y\WFOAIFD\bCFK\.YYVKFMB\AZ\fKG\mAICKU\WFOAIFD\bCFK\.YY\IMA\fKGMDG\fA\mCB\IMA\fKGMDG\fA\mCBPCKCA\wFOAFA\tKCCBPCKCA\wFOAFA\tKCCJ\tKCCJ\tKCCB\O\hA\g\lGK\yA\bC\!Y\O\hA\g\lGK\yA\bC\!YY\IMA\fKGMDG\fA\mCBPCKCA\wFOAFA\tKCCJ\tKCCB\O\hA\g\lGK\yA\bC\!YYPCA\lG\wCOHPCA\lG\wCOH\WFOA\tCMA\fCCD\u\pB\WFOA\tCMA\fCCD\u\pBRBRBTTYPCA\lG\wCOH\WFOA\tCMA\fCCD\u\pBRBTYV\j\u\m\pC\dBV\j\u\m\pC\dB\IM\tGAICAF\iKB\IM\tGAICAF\iKB\B\uD\IA\m\iOOC\dAIFH\B\uD\IA\m\iOOC\dAIFH\AAZ\u\pAICKC\.Y\AAZ\u\pAICKC\.YYV\j\u\m\pC\dB\IM\tGAICAF\iKB\B\uD\IA\m\iOOC\dAIFH\AAZ\u\pAICKC\.YY\NG\wE\fKC\tB\NG\wE\fKC\tB\AM\dE\fKG\wMB\AM\dE\fKG\wMB\IA\CF\u\g\hDIFH\IA\CF\u\g\hDIFHQQY\NG\wE\fKC\tB\AM\dE\fKG\wMB\IA\CF\u\g\hDIFHQYP\iOA\iOAICACM\dBP\iOA\iOAICACM\dBPCKCAF\iMDMGA\mGKCBPCKCAF\iMDMGA\mGKCB\UM\lCOOA\IAOCCB\UM\lCOOA\IAOCCBPFD\bCFKAGM\cCA\mGKC\.YPFD\bCFKAGM\cCA\mGKC\.YYP\iOA\iOAICACM\dBPCKCAF\iMDMGA\mGKCB\UM\lCOOA\IAOCCBPFD\bCFKAGM\cCA\mGKC\.
Z{\s}Y{OS\n\d}X{\i}W{\o}V{\r}U{\l}T{\t}S{\a}R{\e\d}Q{A\hW\uZ\eON\JS\c\kO\b\uXUT\.}P{WV\nC}O{\ }N{T\hSTO}M{A\fSV\m\eVOZW\wX\n\gO\hXZO\cP\k\e\pTJ}L{ST\eA\mSUT}K{\wWVVXRA\cSTC\kXUURAVSTO}J{AVWWZT\eVON\cVW\wROX\nA\mP\wW\k\eAHE}I{\
\
\T\hXZOXZ}H{\j\u\d\g\eOSUUOZ\hS\v\e\nYOZ\hP\mSVVXRFG}G{X\d\e\nOSUUO\fWVUP\mXU\kRD}F{A\mS\nOSUUOTSTT\eVRYOTP\kXZZRA\mS}E{CKCLB}D{A\cW\wO\wXT\hA\cV\u\m\pURO\hPTWZZRA\dW\gO}C{\
\T\hSTO}B{CUS\yOX\nQ}A{OT\h\eO}\T\hXZOXZQIA\mSUTOBIAVSTOCLBIA\cSTOC\kXUURAVSTCLOBIA\dW\gOEIDEIA\mSGNKNLBIFGNKNLBIAHEIJIMIA\hWVZ\eYA\hW\u\n\dYA\hP\b\eUW\n\gROTWM
C{A\ \BA}B{\u\f\f\a\l\o}A{B\ \bB}\BC\ \bC