fork download
  1. def alpha():
  2. return {'a':0,'b':0,'c':0,'d':0,'e':0,'f':0,'g':0,
  3. 'h':0,'i':0,'j':0,'k':0,'l':0,'m':0,'n':0,
  4. 'o':0,'p':0,'q':0,'r':0,'s':0,'t':0,'u':0,
  5. 'v':0,'w':0,'x':0,'y':0,'z':0,'A':0,'B':0,
  6. 'C':0,'D':0,'E':0,'F':0,'G':0,'H':0,'I':0,
  7. 'J':0,'K':0,'L':0,'M':0,'N':0,'O':0,'P':0,
  8. 'Q':0,'R':0,'S':0,'T':0,'U':0,'V':0,'W':0,
  9. 'X':0,'Y':0,'Z':0}
  10. t = input()
  11. for i in range(t):
  12. s = raw_input().strip()
  13. a = alpha()
  14. for j in s:
  15. if j in a:
  16. a[j] += 1
  17. v = a.values()
  18. tot = 0
  19. for j in v:
  20. tot += (j+1)/2
  21. print tot
Success #stdin #stdout 0.01s 7732KB
stdin
4
nydkaDFtXWVaNoicfSdgFAlXdhErevVTiruAGgzpoZERQVNBlxeRghrVUhAcoYdWJGTPSFgnSqYkIyUuEALaZUpMdQpSAUWwMPKzQOtfoNNriydGbJqfkSrcoACSSjMgTwghwIbWKedyiszTrrFinDVkfuMBZNVjnYMrJgDtLmRblWJyTlJnwfRPuMTwXMhzuSZRpsYucAXSthzGdntwbixRrLaCroIgxBSmJYIANnTYtLwunJupeprVQtGoajRwevXGzxhomNzvpNZclWoodJANHOJJNTstgfRyOVJYCTWmIWkGbZJXvywQtDfsYTWYeKBYdwLsqIfrGmYdvxXIZxdoFUPyTYbHNJjrXvKYFKXhiNpvnGWHtKQIXoovJYjZNFLlCbHyUEhZbWueJoyBXsXafddLXhCFJvYcDbgNucWsntxkmcJJlxfrqLcHAEThxXYYDJUUJvcAfvhkFzeXcZAFpLrnZVuVdQOAFRZoYujImMIlGHtpanHffoHMXvCnhzfiGwZAFnavWAfYqPzPvKooXFbsKsuwaoNFGlRatlNbTNmjZKZsLtNiGcPKBdNWEwSeCPUHhDRZQzNRaKZdyDdcPnuvkxCuVNWhySzKwzNrAHgCqPvwmBeDJtRKQoGhvedbxbFkNdYolSdUodNnsOthSlyfhPLcKVcCrpGJkLePtGBAQjvEhMIVThPUquUvVBpSekPwsaGxJQNYFCbKDVgTWnXBHQJrmUsBRfoRUgovxDumDXSRcqnjreuzGMPxSkOolvUCIAZsfxEtOTpXCrIiyJTkrYxjJZTPMByDHnnodFdrDkIZsPLNFucgBTdrLUlEaKpYKLNkkzaRXYzaJMrVAxBBHjNeEXjZYOQkAKxVjtHxTKbKjlQSzLIMTQyoRGePnHrzJPHTfgcPMuQVpPBAtjayQoPmPQIxWiPudLYlihQSMLtViSXxzlgnXjuKlinFaqdqAkXPVkvKQUgJKyugEELZdzMrdeDrOGNtmcjqDKcVDimEeSbbezBBBKdWBAKYqYhlGyZWxEukqZgOXXDRVvqQmLLGjCDIvzmUJFtXhTlImkXsaskldWZENXsQKdtDAWcWZqiEgwxhEYeSrhtaXHmufMakpYDcoNQGGkjtkwbqsSTofdBSEFUVpuuXUduQFNZZVypdRgajADndMUXjXCCatDwOEEQRKgwDgoFVXrxXisyHohvRtbWjTsWsmZnpAIUiImcrhzDqoHeIlSneWUVwiseitRdptcGkTpyxwwZnfhUYesWtSGncBoPSvipjfLfaSTeSHVPiquDsrsgwXCSzHgCZNAuJSRBbyokPUooajTXAuIBdvCHnqICCaDIXlqyfmxQnUEEFQZYBVWhtFqMWsgFuvbfeFdqpJVTlJdUIVCpcGluamMvWXPVFLgBxdtSIIKtexMsKygvqMUVVCNkOQgcydHXvAlrjRofSHIQMwaWvZWjxdtQLuCtBOuFqofUDlTFqxsEcDKHzizcorSYQXkGqlmKbrFuNqKxVhAVOHxXdhzkqQMXOSTDhTdOYbfReNhViSiPuOJkyvGPOhllWHGkkdpKozhuDTLYiQxuawByjfKGIAJaieWIjcPfmdAdNpwnjccPdPXjdRzGlcheamAIBrnhsLbueTBikqvUPEyAMvdSxoZiadrfnjLYddZYZwZAFMNILUuQLOkZcVTsqhtFIazMUxwHLaoNejeSaXnhnTWtBsgEdFnuiCrvgdyqvqgCXAANItWJjgjJTErgMoJyXitJAMoMmWsUjBRgsGsdZONrEdsDoLfMDdTDpQTXIHssSPXfGYSKdhkQCyRqIfQRmgzKAxYZrcAFNqjFJHxVBrabFeuUFYFvnvxSRestlHcMBpfQRCkpxOOKcRdXYwPIqawqDCUDEHdEhJwebdGLDXjUYBvVVGztcNojaslsUgAIhddUsRLdCeCRnmtEGydljRkZjmQoKMgTEjCHUKVhBakxpkErdRigOAlzzNkfPjUEhSaaw
OTNDBGmNQSmkhAHoaFvVrppsiHmdBjJeDPfoSjDznSjsUTyaSMCcrDumDKvSoAYgLdRZKesJvgrwSEsFzgBQswKGnLmRMVfOnqSzcEussUzZvEVLZvKzXSFUXOxdpwJhSfGLbXeNTfSMJukAZSaEXULMxxIptqhwqzKEZMAJeEtaSiVeFRpjnWhlVaoFYOcDbvuRZhwDIAyJmhLnFsEJjdCGFOiyfnVOXYpeCCwIRzFkWunCZaBJRRwnIPyxlymdKIjxvUbLSMWfAFTOqFeVhOsHkyuqvZowVIjfiQSLDvTbrSIqthzoLjtnDZDWJzcGwVBHnVVnLKvwxVvloJqxAfimXnrGsHvDALtqWuSxkowLyvZRpzVTfKjAfOmELGxhBtBzLVoKTsbxdlnFbTdKSfouLUwvbzWzhRtCnuLVuWScPlEMxAStXjjoRoPcljqjKSyrvEtMGuzuwIkNVuJvDnEaZySZdXrtXFtzQRtGwUrstYMrXjytvrxxdxZRXhdEbswLEiNMltGsFHKiXgnDQFjozLgJDOpOAXKmEvwVZbFNeakSgcChXcFczDMSWHkxGiSiHEwAxjdNLiBIqpVzCRoIMjnzLnsgyhJRrQOPqGVGrvutJqqxyezaNvRGmZBgyBYEgwaJTrJcbKqtIEPiaAiNcNXpUGweOalNaTCJOboxKNmJKGmSfSQVUJdVXjVPCtIGdPmWuyBFJpYxCXFVKdlsANvmrgOGOmsfLSdTghWeIeGUDMnBqJyKaYyPbOWaDOvHuEkowOnfRUtgkjQGIHHPxCvEECfHsFjYEhPeQtQvErpEEwXLFDCXtUpJbqeqqwMiecHrOZYUofSIcbLrKvdVWZrUqVhGCutyCArdzhEoriktOgnJHESNlkgiwbHvgVYebJvtTqQHqTjWgbbrkrnpYUJNCjKxXmJihCNvPMBzlRUhPPzDEZysAyCISqRkQgLemycBpLrQzVlKvmLFrvuuulQCNLlPWbVArbhvpzuHsZaHToDnzsdkHgIMPPoGpWXROudlHAxsIfmNOLossfrnSfytsIgfBiJfCUatFnJWlMMSusjMxjYkKlRqWZgqSPDffDLuWQkWYQMNEOzfGyDTTxnOarAHLKEhwmifEjrzGDPvSenYPYUeTJSabPnqcxVXkKgRBwyzpimFfnypuimAxToLUYnuqEdhkCbIOznMPlgtgPbqFscECIsfbvNzthBuoqccNdElvOmLSmgWJddCdzZTQvEGwVTmpfZMnwJYyfLivnpmcmFQCyYLgdoqWrJrNevaMQETQrmNUiulmdxBijbFYpgQWnqFjQTJWdSRWVJpgdVEObffsWXllSLpsHDSPbqYEtkmKrgrEbHPbaXJZVUsjDMKJaehnHcVjZHtDmaFJWBkaaGBoOekaCWLTymmuSTJwbMfhGGxanTAlONFlukifDqoPvvNNuwCNJfbZIFiAfJGKJlUWYcimgOYQvMDFwoVAhLyYjNQFEyYCymEyLzcNyLgOjYUBZrEqiOVoKYVzgpkHkVZsiUAZcRoRZQdyYvjncBnumCNPwaJnKDpovmmWqHAszUcgTBAGjwNUXLAJTbPZGAhfUaYCTCMGCGDfMuhRFajqqXCZsKCzaRHafNslVqpCdMRTfwOFzxBReNaVpgKtvgqclbspGebcwtWuniQSWzQAObrjmtIRokkuUfRnAvzWnMmfwAMrIrAsVUhRtbJjcrzqsouRIdQkjIAENNLWmXriOeesMujAvsriKuzvqOUbDaprTTzbVVizscEtkONEEpoAFqvNpCLXJolYuTMlBnUiHKVVfPXWeGpUmklGGMqIGwOjrwEyndHXFwMpseIiLwXYIfQDrBjKrayjyjngsMYaZjwSpOxchxozzOIFlHPOQKkTRmpZSKCEhCguTUUqgbLhjJsXyesDyttCrISvFQfpGkeQnhukTtgwdXnQIarjJahuLwEbCoZUCPoJgCOUPUNeNWCHYbVjlKgboRYiJSeVKcC
voeCqXBVGTVNebdKNLJkEUdENUYfNBiAoeNXPhVumFASFWpyZiBwjLJHmLVVEVSukTUYcWgSFftnHSJFgOJfeiihAyCjomxqxxNMsorhfuPjWiIESpraUiOtWceglEwfqPHimQcEnWexZpVmCzhpOSckHsOUQsxfEvtmlNfHPShrtamIAvWMRIhsVsDlaMAkByqjxvgLUyZKWuJvmAtDnbKYNwQCwgetKNpBkeslJPzXlYcQasHRfZfEaXYmgaDeVGoGiCLvwDvQBTwTweNQxrklTeakLqvTLTRQGLemdQHoTMjNCQdeThxScvpngVNMrXDbXmngTdDljojPNWPAHyDivKutSdJKFnLFaKHeVSPHNMFBxIPtBWbidaNuUFXvzeSRCPFyEYBNonhjlYTohSRwwixEmsnWiYOPlaKhuuAixuGKMgwuOdKHIDMxETaxsecBrCrOJNmliSEWSrZkjdrrmnNgEYfEnIuFRFHWOjifoRzZfLAzYuNBIzEHJEnPxKCkvOjJGYbFKuSpCUJbikbFGhTXzeFaecoAGzFMneaGOBjCtKHejXXgCjdDiAxfNYLiUVuZwdcEeJfSVRNkSrDBhnLLVYQFHFrbfEbnSxQrfZTWACvBSZQgcwvpwtUedjNDCgzsWKYwlnvZxWeNiAjxpMlAHydCfYYRMeGDsKFDbnQpUOruVVIkMtOhDhMdjgydGZoiURBvFvtmwDjWIWatAnyGKAvzNOshpGurZfaFauiUZOhrktVockzdtkfXtskFWxIJCPTTsAvjWuiouuPSscLRnQfGLuMZYIZCIJIuHrskNZShPZkxQQMSMudbbYJijqncZpCDGWyTEsmjpmblGNHDUwulJhIcbGpLWytRYQSfTCDhbaCIyNhdGOvFwDEHnqcqKVPxCZvClFZLFcRBJooSYkzUAsQMIxeUdJZgxGCsqYqOtUfCZbaYjOpbbUhVUuKPUvRHPhtpAmyLPgmbWBAoYeHgoGDYVMHPMMOkNyoQHaYXLymoebMLbxsgVLRYkkWahvJdBQyNjVDbbLJHWnQeTfELJGRiXtlEvBvYMpRRdJpTPyTKOUAubsvrOmWyHMeUaxLsninSyaGattzHQSUnvAzMsijRBQtkTuAjkguHfPuqNjRHwMjWdsEPdzzuUDIIYJiCdEYekTbZORNnUKVWXoJzuzvdNtnCAeaykfXhrBvLcXRPEdKaKIuJnSeVVbGCwCZXlCxoAryiqjRVMnGhfGsyxbEBBtvEnCadXtLNhkGFCyTAQaOZUJlpIBqHpoTmIMLgmTSvIUwVXoSRSEwPrqSxRgggHxfwvcOKRbukgnrxeiiRMaYlVKbWGNuzAFazCOMXgAAbCyAOymNxQWQHSggNlFIyoJZizTHYiXyeJmnRjhPonpsXtsuWlLWWSugLrSAFKUHjUxDCWytJFenXGZlJcOGNJWcrfKLeYHRqJRUBMvbasjPwkRCEPmEyNgglfkBmBEWRErEhDqcSfElgdeXEACVZrUpRzFDmGWSlaFdjedjpNKdgyiKKlPDJwoyWTRvUqVAzKIlwpHkmiKFYoJIkBMBsdVhvQHdzooGfvwAcSmBnYExRCPMBkhXcGCrcULMXqkLqAEOpuXslvNTiOTAAHkPUVtjIpqBJrnIUExIHXUrMgZwFtenRviqehdnwZCEWfkUoezSMDLvZydLMMjxJVvXBTYWHFsSWaaLUwXrhNJSLyqBIyJukafiazeCYySpZjpeoonJQqDdwViLnmSinEuWQLVdhDDXHARpRlbkhSatsInDwfkpAtXuZoUNdOTezzXHgSVzQzjYKEDQFbixeowdYRlcJkjoBdRIYBtFARqnzCXjxeVWLoBrtxdunllrcMxUfxyelgrpIgMUxFdOLZdilZlwuYXVJYCrFckenFvkbADjklswCGmbkMwOYLuhkuRdlbKFcyAtzYFmRrmuNCOeTDfkFrHPaCVfPwZFrNXXxLTwznwshpWOoBEJuHTGWkOmS
IeIVUUzdfCFjOpVAXpAgYMtEzcSJGZdObIvNAsEmSwalfIFOBhGvlFhnADGnNDCdTryTnTdEjYXErVWwoHhlnqtPoGchQEJAavmrhkqknmOXPLufFCBxvuJMhFoZFNxPDKfVuFkaVVmxKYebkwDMwmAGAsVqEERrLzaltJfGafmRzqfIWSOujcOxvnYIEytdaBVgtHtuxcApXfZqUPZzVccnXtjEkoPcVhlCOTvNIVfQtfNZhCctpaVgUJilIUNRkvSUDMOLYzWbboaMAZSptUpJbMTgtnmnxFmkvuazAwCHIxkcpgUZWIMKQkuNDZWxwTehhCPwtfPSEAZsKTqmhBakdnJKqfElXIEuKILyylUnMEkbprtOwyOLcQAPNahRKRpiouUGGoaRvmKwdducnRNwnOUZdcfEFyUZSDZXqzwBXawVuNxYTudpEBhcGfWjenwqCgXgTHfNjHHiYfoJmZsnhAiZnGWfitbHEGPgrwlKYlKJFuTNrzsRGJpSyDGaPjyNaYkSDsCrcoNMDgftWQjKBAcxsWTGLHtcvspBFvGwTFNFUjAiJzvhCdlFVsRqhTNnAbhZQSWFvzVyShUmOeyFLAkJbBfCfyAXRZYCauGLETkiLruQWaAlIJovswtLOAdlfbSVwVXKWKtrzkgvRitNZMvTQFzlEXvvODmJnGZcgJTKMZLNymVvXwyeHufHQUQLOpftnLLYgOvYMZpuOfIFJaDtHEGYDREtPsMPYOLOswcjyujmwckReYvfqkKfwYOFPjXQtzXvelFDGUMLLnFFStuQlDmusMvnhtEzRMAticUfBxCxtjJpVjnDdcfWeElOzNNuLRqIqrgysXThOEAchBAAGzNXRnURiDFdBKtAIfcoFuJTrrXHNrnMmeMJGXSfWsptcpjWJMZkbsjcpTiSRYDKkXoEjaKcUlrKyFJLuDkTTPwvllcRmjotEyTSCUflfpzRaoXvIasxoHnDVgDgsEbivsZpAlxZqPnilfwthISGyQsNKEiutLsMFdAfXjIkHrWEamaNvCLFkODxnFTTLuKkaMMXeEfinHscYZyAfqdJGFioyvZZxYXUHhbANUrNZMEjlsDyLOUVwXUOkZcQhcYcodPSsJKwSwPbLClEFcaBmjqEJXPoeAkBrnanGcRrVQTjSecIosiUFqtJnXslvSJjpKgTICbnlMBswrlPnwuEJPMIJndmdaAaQSDvhBXctUPbfaxoUMcHzJVqZEVKDEcKGLOcuzPyXBYSirozIBIJouRpucYvGTLSKOrEwhlLYlBsHmhqpsSVwmdwAidIbpcMdYDDinsAstmZfTLPWXGqRgPqGOQkyBdNCFVGHHqNIxlYnCFBcZxnSDTsQdjuZLQjfsEJanXTvwUunSUpzbwejpoMnutRzXGDBTXgsnaMsbGpagOaXeZtuWhizHunaBpUKKjJlGaeiarhvhBxWEjbJWtYhepxfnWXkurUdWULlVUXbtxiKlkyKXtofXFZVimIWKnffhSJCNIbQlPzBCakEHZLcMRRhzyLWqJVOLKTSypWpVkCAtNyARsJOZRJlbNynmIHubMYxgJfVwHvmDaZEtGHnDOKPbnLKeKfwZzzkoAHjEIMFxBPNYOkSknoGNqtfkLAeudDJBQmYaWygPDtxunvGhQQAEQQMIukAKldOpFeUlVWSvTROklHxbaifjlJQTzzBSDvPuUrCnLkDnLxRMrusryGkwLmcuvXPgjvJFGlCicVhaWOyKueOeDsDEoaYWKhiNSMupXSQvfLvOPwjlflQusOTRPAXpPaQFecTKheGIyBUKjMNJmqzYkORJqAWMcLDwXyrXUryMnmhCEMHhXXDbUuBJmAQhjPGtHbQrAwZXlhrpHEaSGTdeRpvGAqcxoeTrbmjfCmFMYDgANisLKXEKubPLqvKfxXSmXlPrXDNoejBamDCWWPBqFkhFXHaxbcbnPmNAajkVkfQkQUYmnoPCmAatdNirfxgRCtBawnRISYbmAN
stdout
1011
1012
1013
1015