{"id":1216,"date":"2026-06-28T03:41:31","date_gmt":"2026-06-28T03:41:31","guid":{"rendered":"https:\/\/accelthinking.com\/?p=1216"},"modified":"2026-06-28T06:08:24","modified_gmt":"2026-06-28T06:08:24","slug":"ccc-2025-j5-connecting-territories-solution-analysis","status":"publish","type":"post","link":"https:\/\/accelthinking.com\/zh_cn\/ccc-2025-j5-connecting-territories-solution-analysis\/","title":{"rendered":"CCC 2025 J5 &#8211; Connecting Territories Solution &#038; Analysis"},"content":{"rendered":"<style>\nhtml,body,#page{background:#f8fafc!important}.site-header,.site-footer,#masthead,#colophon,.entry-header,.post-navigation,.comments-area{display:none!important}.entry-title{display:none!important}.site-content .ast-container{max-width:100%!important;padding:0!important}.entry-content{margin:0!important;line-height:0!important}.site-content,#content,#primary,#main,.ast-plain-container #primary{margin:0!important;padding:0!important;background:#f8fafc}.ast-article-single{padding:0!important}\n.ati-page,.ati-page *{box-sizing:border-box}.entry-content>.ati-page,.ati-page{display:flex!important;flex-direction:column!important;width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;font-family:Inter,Arial,sans-serif;color:#0f172a;background:#f8fafc;font-size:0;line-height:0}.ati-page>p,.ati-page main>p,.ati-footer>p{display:none!important;margin:0!important}.ati-page a{text-decoration:none;color:inherit}.ati-page svg{display:block}.ati-top,.ati-page main,.ati-footer{font-size:16px;line-height:1.5}\n.ati-top{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:76px;padding:0 clamp(22px,6vw,116px);color:#fff;background:#050505;border-bottom:1px solid rgba(255,255,255,.08)}.ati-top>p{display:contents!important}.ati-top br,.ati-nav br{display:none!important}.ati-brand{display:inline-flex;align-items:center;width:max-content;color:#ffc400!important}.ati-logo img{display:block;width:auto;height:38px;max-width:min(260px,42vw);object-fit:contain}.ati-nav{display:flex;gap:clamp(20px,3vw,44px);align-items:center;justify-content:center;font-size:15px;font-weight:600}.ati-nav a{position:relative;padding:28px 0 24px;color:rgba(255,255,255,.86)!important}.ati-nav a:hover,.ati-nav a.active{color:#ffc400!important}.ati-nav a:after{position:absolute;right:0;bottom:19px;left:0;height:2px;content:\"\";background:#ffc400;transform:scaleX(0);transition:transform 160ms ease}.ati-nav a:hover:after,.ati-nav a.active:after{transform:scaleX(1)}.ati-header-cta{justify-self:end;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 20px;color:#050505!important;background:#ffc400;border-radius:8px;font-size:14px;font-weight:800}\n.ati-page{--hero-pattern:radial-gradient(circle at 82% 24%,rgba(255,196,0,.18) 0 2px,transparent 3px),linear-gradient(135deg,rgba(255,255,255,.07) 1px,transparent 1px);--hero-pattern-size:90px 90px,38px 38px;--hero-pattern-opacity:.55}.ati-solutions{--hero-pattern:radial-gradient(circle at 25px 25px,rgba(255,196,0,.2) 0 2px,transparent 3px),linear-gradient(90deg,rgba(255,196,0,.09) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.06) 1px,transparent 1px);--hero-pattern-size:96px 96px,96px 96px,96px 96px}.ati-cp-academy{--hero-pattern:radial-gradient(circle at 20px 20px,rgba(255,196,0,.26) 0 3px,transparent 4px),radial-gradient(circle at 74px 58px,rgba(20,184,166,.18) 0 2px,transparent 3px),linear-gradient(135deg,transparent 46%,rgba(255,196,0,.11) 47% 48%,transparent 49%);--hero-pattern-size:112px 112px,112px 112px,56px 56px}.ati-it-consulting{--hero-pattern:linear-gradient(90deg,transparent 0 28px,rgba(20,184,166,.14) 29px 30px,transparent 31px 72px),linear-gradient(0deg,transparent 0 28px,rgba(255,196,0,.1) 29px 30px,transparent 31px 72px),radial-gradient(circle at 30px 30px,rgba(20,184,166,.22) 0 2px,transparent 3px);--hero-pattern-size:72px 72px,72px 72px,72px 72px}.ati-about-page{--hero-pattern:linear-gradient(135deg,rgba(255,196,0,.12) 0 2px,transparent 2px 28px),radial-gradient(circle at 85% 28%,rgba(255,255,255,.12) 0 2px,transparent 3px);--hero-pattern-size:42px 42px,96px 96px}.ati-contact{--hero-pattern:radial-gradient(circle at 78% 44%,transparent 0 34px,rgba(255,196,0,.14) 35px 36px,transparent 37px 70px,rgba(20,184,166,.12) 71px 72px,transparent 73px),linear-gradient(135deg,rgba(255,255,255,.06) 1px,transparent 1px);--hero-pattern-size:220px 220px,42px 42px}.ati-cp-weekly-challenge{--hero-pattern:radial-gradient(circle at 18px 18px,rgba(255,196,0,.2) 0 2px,transparent 3px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);--hero-pattern-size:52px 52px,104px 104px}.ati-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(28px,6vw,90px);align-items:center;min-height:430px;padding:76px clamp(22px,10vw,160px);overflow:hidden;color:#fff;background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.6)),var(--hero) center\/cover no-repeat}.ati-hero:after{position:absolute;inset:0;content:\"\";background:var(--hero-pattern);background-size:var(--hero-pattern-size);opacity:var(--hero-pattern-opacity);mix-blend-mode:screen;pointer-events:none}.ati-hero>*{position:relative;z-index:1}.ati-label{margin:0 0 12px!important;color:#ffb000!important;font-size:13px!important;font-weight:800!important;letter-spacing:.08em;text-transform:uppercase}.ati-hero h1{max-width:840px;margin:0!important;color:#fff!important;font-size:clamp(42px,5vw,72px)!important;line-height:1.03!important;font-weight:800!important;letter-spacing:0}.ati-hero-title-line{display:block;color:#fff!important}.ati-hero-title-line.accent{color:#ffc400!important}.ati-word{display:inline-block;white-space:nowrap}.ati-word:not(:last-child){margin-right:.32em}.ati-letter{display:inline-block;opacity:0;transform:translateY(.34em);animation:ati-letter-in 520ms cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(38ms * var(--i))}@keyframes ati-letter-in{0%{opacity:0;transform:translateY(.34em)}100%{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.ati-letter{opacity:1;transform:none;animation:none}}.ati-hero p:not(.ati-label){max-width:700px;margin:22px 0 0!important;color:rgba(255,255,255,.86)!important;font-size:19px!important}.ati-side{padding:28px;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:8px;backdrop-filter:blur(18px)}.ati-side strong{display:block;color:#ffc400;font-size:22px;line-height:1.15;overflow-wrap:anywhere}.ati-side p{margin:12px 0 0!important;color:rgba(255,255,255,.78)!important}.ati-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}.ati-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 28px;border-radius:8px;font-size:15px;font-weight:800}.ati-primary{color:#050505!important;background:linear-gradient(135deg,#ffc400,#ffb000);box-shadow:0 18px 38px rgba(255,196,0,.25)}.ati-secondary{color:#fff!important;border:1px solid #ffc400}\n.ati-section,.ati-about{max-width:1320px;margin:0 auto;padding:72px clamp(22px,6vw,64px)}.ati-heading{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:end;margin-bottom:32px}.ati-heading h2,.ati-split h2{margin:0!important;color:#050505!important;font-size:clamp(30px,4vw,48px)!important;line-height:1.08!important}.ati-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.ati-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.ati-card{padding:26px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 18px 45px rgba(15,23,42,.06)}.ati-card .ati-num{color:#b47c00;font-size:14px;font-weight:800;text-transform:uppercase}.ati-card h3{margin:12px 0 0!important;color:#050505!important;font-size:22px!important;line-height:1.12!important}.ati-card p{margin:12px 0 0!important;color:#172033!important}.ati-task-card h3{margin:0!important}.ati-task-card h3 .ati-num{display:inline;color:#b47c00;font-size:22px;line-height:1.12}.ati-task-card p{margin-top:14px!important}.ati-split{max-width:1320px;margin:0 auto;padding:72px clamp(22px,6vw,64px);display:grid;grid-template-columns:.85fr 1.15fr;gap:52px;border-top:1px solid #e2e8f0}.ati-list{display:grid;gap:14px}.ati-list article{padding:20px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.ati-list b{display:block;color:#050505;font-size:18px}.ati-list span{display:block;margin-top:6px;color:#172033}.ati-dark{max-width:none;background:linear-gradient(135deg,#050505,#0f172a);color:#fff;border:0;padding-left:clamp(22px,10vw,160px);padding-right:clamp(22px,10vw,160px)}.ati-dark h2,.ati-dark p{color:#fff!important}.ati-dark .ati-list article{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}.ati-dark .ati-list b{color:#ffc400}.ati-dark .ati-list span{color:rgba(255,255,255,.78)}.ati-path{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.ati-benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ati-benefits span{padding:18px 20px;color:#0f3d37;background:rgba(20,184,166,.1);border:1px solid rgba(20,184,166,.24);border-radius:8px;font-weight:800}.ati-side .ati-side-link{display:inline-flex;margin-top:18px;min-height:42px;padding:0 16px;align-items:center;justify-content:center;color:#050505!important;background:#ffc400;border-radius:8px;font-size:14px;font-weight:800}.ati-challenge-entry{max-width:1320px;margin:0 auto;padding:0 clamp(22px,6vw,64px) 72px}.ati-challenge-entry+.ati-challenge-entry{padding-top:0}.ati-challenge-panel{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:28px 30px;color:#fff;background:linear-gradient(135deg,#050505,#111827);border:1px solid rgba(255,196,0,.36);border-radius:8px;box-shadow:0 24px 55px rgba(15,23,42,.16)}.ati-challenge-entry h2{margin:0!important;color:#fff!important;font-size:clamp(24px,3vw,36px)!important;line-height:1.08!important}.ati-challenge-entry p{margin:8px 0 0!important;color:#dbe4ef!important}.ati-challenge-entry a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;color:#050505!important;background:#ffc400;border-radius:8px;font-weight:800;white-space:nowrap}.ati-posts{display:grid;gap:18px}.ati-posts article{padding:26px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.ati-posts h2{margin:0!important;color:#050505!important;font-size:28px!important}.ati-tag{color:#b47c00;font-size:13px;font-weight:800;text-transform:uppercase}\n.ati-assessment{display:grid;gap:18px}.ati-assessment-frame{display:block;width:100%;min-height:3300px;border:0;background:#f8fafc}.ati-embed{overflow:hidden;border:1px solid #1e293b;border-radius:8px;background:#050505;box-shadow:0 18px 45px rgba(15,23,42,.12)}.ati-embed iframe{display:block;width:100%;min-height:760px;border:0}.ati-levels{display:grid;gap:10px;margin:0;padding:0;list-style:none}.ati-levels li{padding:14px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#172033}.ati-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:800px){.ati-task-grid{grid-template-columns:1fr}.ati-assessment-frame{min-height:4300px}}\nbody .ati-wpforms .wpforms-container{margin:0!important}body .ati-wpforms form,body .ati-wpforms .wpforms-field-container{display:flex!important;flex-direction:column!important}body .ati-wpforms .wpforms-field{padding:10px 0 16px!important}body .ati-wpforms .wpforms-field.wpforms-field-text{display:none!important}body .ati-wpforms .wpforms-field.wpforms-field-select{order:-10!important}body .ati-wpforms .wpforms-field-label{font-weight:800!important;color:#050505!important}body .ati-wpforms .wpforms-field-row{max-width:100%!important}body .ati-wpforms .wpforms-field-row-block{width:100%!important;padding:0!important;margin-bottom:12px!important}body .ati-wpforms input,body .ati-wpforms textarea,body .ati-wpforms select{width:100%!important;max-width:100%!important;min-height:48px!important;padding:12px 14px!important;border:1px solid #e2e8f0!important;border-radius:8px!important;background:#f8fafc!important;color:#0f172a!important;font:inherit!important}body .ati-wpforms select{appearance:auto!important}body .ati-wpforms button[type=submit]{min-height:52px!important;padding:0 26px!important;border:0!important;border-radius:8px!important;color:#050505!important;background:linear-gradient(135deg,#ffc400,#ffb000)!important;box-shadow:0 18px 38px rgba(255,196,0,.24)!important;font-weight:800!important}\n#wpforms-76-field_5-container,#wpforms-76-field_6-container{display:none!important}#wpforms-76-field_4-container{order:-10!important}\n.ati-challenge-query .wp-block-post-template,.ati-challenge-posts{display:grid!important;gap:18px!important;padding:0!important;margin:0!important;list-style:none!important}.ati-challenge-query .wp-block-post,.ati-challenge-posts li{padding:26px!important;background:#fff!important;border:1px solid #e2e8f0!important;border-radius:8px!important;box-shadow:0 18px 45px rgba(15,23,42,.06)}.ati-challenge-query h2{margin:0!important}.ati-challenge-query h2 a,.ati-challenge-posts a{display:block;color:#050505!important;font-size:clamp(23px,2.8vw,31px);font-weight:800;line-height:1.12}.ati-challenge-query h2 a:hover,.ati-challenge-posts a:hover{color:#b47c00!important}.ati-challenge-query time,.ati-challenge-posts time{display:block;margin-top:10px;color:#b47c00;font-size:13px;font-weight:800;text-transform:uppercase}.ati-challenge-query .wp-block-post-excerpt,.ati-challenge-posts .wp-block-latest-posts__post-excerpt{margin:12px 0 0!important;color:#172033!important;font-size:16px;line-height:1.55}.ati-challenge-query .wp-block-post-excerpt__more-link{display:inline-flex;margin-top:14px;color:#b47c00!important;font-weight:800}.ati-article{max-width:1080px;margin:0 auto;padding:72px clamp(22px,6vw,64px);font-size:18px;line-height:1.7}.ati-article-card{padding:clamp(28px,5vw,56px);background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 18px 45px rgba(15,23,42,.06)}.ati-article-card p{margin:0 0 22px!important;color:#172033!important}.ati-article-card h2{margin:42px 0 14px!important;color:#050505!important;font-size:clamp(25px,3vw,36px)!important;line-height:1.1!important}.ati-article-card ul{margin:0 0 24px 22px!important;color:#172033}.ati-article-card li{margin:8px 0}.ati-article-card pre{overflow:auto;margin:16px 0 28px!important;padding:20px!important;color:#f8fafc!important;background:#0b1020!important;border:1px solid #1e293b;border-radius:8px;font-size:14px;line-height:1.55}.ati-article-card pre code{display:block!important;padding:0!important;color:#f8fafc!important;background:transparent!important;border:0!important;font-family:Menlo,Consolas,monospace;white-space:pre}.ati-back-link{display:inline-flex;margin-bottom:18px;color:#b47c00!important;font-size:14px;font-weight:800}\n.ati-footer{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;min-height:90px;padding:22px clamp(22px,10vw,160px);color:#f8fafc;background:#050505;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ati-footer .ati-logo img{height:36px;max-width:240px}.ati-footer a{color:#f8fafc!important}.ati-footer a:hover{color:#ffc400!important}.ati-footer nav{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;font-size:14px;font-weight:600;line-height:1.35}.ati-footer address{display:grid;gap:5px;justify-self:end;color:#dbe4ef;font-size:14.5px;font-weight:500;line-height:1.35;font-style:normal;margin:0!important}.ati-footer address a{font-weight:700}.ati-footer address span{color:#cbd5e1}\n.ati-menu-toggle,.ati-menu-button{display:none}@media(max-width:1100px){.ati-top,.ati-hero,.ati-heading,.ati-grid,.ati-grid.five,.ati-split,.ati-path,.ati-footer,.ati-challenge-panel{grid-template-columns:1fr}.ati-header-cta,.ati-footer address{justify-self:start}.ati-nav{justify-content:flex-start;flex-wrap:wrap}.ati-split{gap:30px}.ati-benefits{grid-template-columns:1fr}.ati-challenge-entry a{justify-self:start}}@media(max-width:700px){.ati-top{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:0!important;padding:16px 22px!important}.ati-logo img{height:34px}.ati-menu-button{display:grid;gap:5px;place-content:center;width:44px;height:40px;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:8px;cursor:pointer}.ati-menu-button span{display:block;width:20px;height:2px;background:#ffc400;border-radius:999px}.ati-nav{display:none!important;grid-column:1\/-1;width:100%;gap:0;margin-top:14px;padding:10px 0;border-top:1px solid rgba(255,255,255,.1)}.ati-nav a{padding:11px 0!important}.ati-nav a:after{bottom:5px}.ati-header-cta{display:none!important}.ati-menu-toggle:checked~.ati-nav{display:grid!important}.ati-menu-toggle:checked~.ati-header-cta{display:inline-flex!important;grid-column:1\/-1;justify-self:start;margin-top:12px}.ati-hero{min-height:auto;padding:60px 22px}.ati-hero h1{font-size:40px!important}.ati-footer nav{justify-content:flex-start}}\n@media(max-width:1100px){.ati-top{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:0!important;padding:16px 22px!important}.ati-logo img{height:34px}.ati-menu-button{display:grid!important;gap:5px;place-content:center;width:44px;height:40px;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:8px;cursor:pointer}.ati-menu-button span{display:block;width:20px;height:2px;background:#ffc400;border-radius:999px}.ati-nav{display:none!important;grid-column:1\/-1;width:100%;gap:0;margin-top:14px;padding:10px 0;border-top:1px solid rgba(255,255,255,.1)}.ati-nav a{padding:11px 0!important}.ati-nav a:after{bottom:5px}.ati-header-cta{display:none!important}.ati-menu-toggle:checked~.ati-nav{display:grid!important}.ati-menu-toggle:checked~.ati-header-cta{display:inline-flex!important;grid-column:1\/-1;justify-self:start;margin-top:12px}}\n.ati-mobile-menu{display:none}.ati-mobile-menu summary{list-style:none}.ati-mobile-menu summary::-webkit-details-marker{display:none}@media(max-width:1100px){.ati-mobile-menu{display:block!important;position:absolute!important;top:18px!important;right:22px!important;z-index:9999!important}.ati-mobile-menu summary{display:grid!important;gap:5px;place-content:center;width:44px;height:40px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#050505;cursor:pointer}.ati-mobile-menu summary span{display:block;width:20px;height:2px;background:#ffc400;border-radius:999px}.ati-mobile-menu summary:before{display:block;width:20px;height:2px;content:\"\";background:#ffc400;border-radius:999px;box-shadow:0 7px 0 #ffc400,0 14px 0 #ffc400}.ati-mobile-menu summary span{display:none}.ati-mobile-menu[open] summary{border-color:rgba(255,196,0,.62);background:rgba(255,196,0,.1)}.ati-mobile-panel{position:absolute;top:52px;right:0;display:grid;gap:2px;width:min(78vw,320px);padding:12px;background:#050505;border:1px solid rgba(255,255,255,.14);border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.46)}.ati-mobile-panel a{display:block;padding:12px 14px;color:#f8fafc!important;border-radius:6px;font-size:15px;font-weight:800;line-height:1.2}.ati-mobile-panel a.active,.ati-mobile-panel a:hover{color:#ffc400!important;background:rgba(255,255,255,.06)}.ati-mobile-panel .ati-mobile-cta{margin-top:6px;color:#050505!important;background:#ffc400;text-align:center}.ati-mobile-panel .ati-mobile-cta:hover{color:#050505!important;background:#ffcf33}}\n.ati-mobile-menu-button{position:absolute!important;top:18px!important;right:22px!important;z-index:10000!important;display:grid!important;place-content:center;width:44px;height:40px;color:#ffc400!important;border:1px solid rgba(255,255,255,.24);border-radius:8px;background:#050505;font-size:27px!important;font-weight:800;line-height:1;text-decoration:none!important}.ati-mobile-menu-button:before{display:none!important}.ati-mobile-nav-panel{display:none;position:absolute!important;top:70px!important;right:22px!important;z-index:10000!important;width:min(78vw,320px);padding:12px;background:#050505;border:1px solid rgba(255,255,255,.14);border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.46)}.ati-mobile-nav-panel:target{display:grid!important;gap:2px}.ati-mobile-nav-panel a{display:block;padding:12px 14px;color:#f8fafc!important;border-radius:6px;font-size:15px;font-weight:800;line-height:1.2}.ati-mobile-nav-panel a.active,.ati-mobile-nav-panel a:hover{color:#ffc400!important;background:rgba(255,255,255,.06)}.ati-mobile-nav-panel .ati-mobile-cta{margin-top:6px;color:#050505!important;background:#ffc400;text-align:center}.ati-mobile-nav-panel .ati-mobile-close{color:#94a3b8!important;text-align:center;font-size:13px}@media(min-width:1101px){.ati-mobile-menu-button,.ati-mobile-nav-panel{display:none!important}}@media(max-width:1100px){.ati-mobile-menu{display:none!important}}\n.trp-language-switcher.trp-floating-switcher{position:fixed!important;top:auto!important;right:22px!important;bottom:22px!important;z-index:10001!important;width:auto!important;min-width:118px!important;--bottom:22px!important;--right:22px!important;--border-radius:8px!important;--bg:#050505!important;--bg-hover:rgba(255,255,255,.08)!important;--text:#f8fafc!important;--text-hover:#ffc400!important;--border:1px solid rgba(255,255,255,.2)!important}.trp-language-switcher .trp-language-switcher-inner{background:#050505!important;border-color:rgba(255,255,255,.2)!important;border-radius:8px!important;box-shadow:0 18px 42px rgba(0,0,0,.28)!important}.trp-language-switcher .trp-language-item{color:#f8fafc!important;font-weight:800!important}.trp-language-switcher .trp-language-item:hover{color:#ffc400!important;background:rgba(255,255,255,.08)!important}.trp-language-switcher .trp-flag-image{display:none!important}.trp-language-switcher .trp-language-item-name{margin-left:0!important}.ati-header-cta{margin-right:0}@media(max-width:1100px){.trp-language-switcher.trp-floating-switcher{right:18px!important;bottom:18px!important;min-width:118px!important;--bottom:18px!important;--right:18px!important}}\n<\/style>\n<style>\n.ati-article-shell{max-width:980px;margin:0 auto;padding:72px clamp(22px,6vw,64px)}\n.ati-article-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 18px 45px rgba(15,23,42,.06);padding:clamp(26px,5vw,58px)}\n.ati-article-meta{display:flex;flex-wrap:wrap;gap:10px 14px;margin:18px 0 0;color:rgba(255,255,255,.78);font-size:14px;font-weight:700}\n.ati-article-content{color:#172033;font-size:18px;line-height:1.72}\n.ati-article-content p{margin:0 0 1.1em!important;color:#172033!important}\n.ati-article-content h2{margin:2em 0 .65em!important;color:#050505!important;font-size:clamp(26px,3vw,36px)!important;line-height:1.12!important}\n.ati-article-content h3{margin:1.45em 0 .45em!important;color:#050505!important;font-size:22px!important;line-height:1.2!important}\n.ati-article-content ul,.ati-article-content ol{margin:0 0 1.2em 1.4em!important;padding:0!important}\n.ati-article-content li{margin:.35em 0!important}\n.ati-article-content pre{margin:1.4em 0!important;padding:18px 20px!important;overflow:auto;color:#e5e7eb;background:#0f172a;border-radius:8px;line-height:1.55;font-size:14px}\n.ati-article-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",monospace}\n.ati-article-content p code,.ati-article-content li code{padding:.1em .32em;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:5px;color:#0f172a;font-size:.92em}\n.ati-article-content a{color:#b47c00!important;font-weight:800;text-decoration:none}\n.ati-article-content a:hover{text-decoration:underline}\n.ati-article-back{margin-top:28px;padding-top:22px;border-top:1px solid #e2e8f0}\n@media(max-width:800px){.ati-article-shell{padding:44px 18px}.ati-article-card{padding:24px 18px}.ati-article-content{font-size:16px}.ati-article-content pre{font-size:13px}}\n<\/style>\n<div class=\"ati-page ati-resource-post\" style=\"--hero:url(https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/hero-technology-education-51.png)\">\n<header class=\"ati-top\">\n      <a class=\"ati-brand ati-logo\" href=\"\/\" aria-label=\"Accel Thinking home\"><img data-recalc-dims=\"1\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png?ssl=1\" alt=\"Accel Thinking\"><\/a><br \/>\n      <input class=\"ati-menu-toggle\" id=\"ati-menu-post\" type=\"checkbox\" aria-label=\"Toggle navigation menu\"><br \/>\n      <label class=\"ati-menu-button\" for=\"ati-menu-post\" aria-hidden=\"true\"><span><\/span><span><\/span><span><\/span><\/label><\/p>\n<details class=\"ati-mobile-menu\">\n<summary aria-label=\"Open navigation menu\"><span><\/span><span><\/span><span><\/span><\/summary>\n<div class=\"ati-mobile-panel\"><a class=\"\" href=\"\/\">Home<\/a><a class=\"\" href=\"\/solutions\/\">Solutions<\/a><a class=\"\" href=\"\/cp-academy\/\">CP Academy<\/a><a class=\"\" href=\"\/ai-literacy\/\">AI Literacy<\/a><a class=\"active\" href=\"\/resources\/\">Resources<\/a><a class=\"\" href=\"\/about\/\">About<\/a><a class=\"\" href=\"\/contact\/\">Contact<\/a><a class=\"ati-mobile-cta\" href=\"\/contact\/\">Partner With Us<\/a><\/div>\n<\/details>\n<p>      <a class=\"ati-mobile-menu-button\" href=\"#ati-mobile-nav-post\" aria-label=\"Open navigation menu\">&#9776;<\/a><\/p>\n<nav id=\"ati-mobile-nav-post\" class=\"ati-mobile-nav-panel\"><a class=\"\" href=\"\/\">Home<\/a><a class=\"\" href=\"\/solutions\/\">Solutions<\/a><a class=\"\" href=\"\/cp-academy\/\">CP Academy<\/a><a class=\"\" href=\"\/ai-literacy\/\">AI Literacy<\/a><a class=\"active\" href=\"\/resources\/\">Resources<\/a><a class=\"\" href=\"\/about\/\">About<\/a><a class=\"\" href=\"\/contact\/\">Contact<\/a><a class=\"ati-mobile-cta\" href=\"\/contact\/\">Partner With Us<\/a><a class=\"ati-mobile-close\" href=\"#\">Close<\/a><\/nav>\n<nav class=\"ati-nav\"><a class=\"\" href=\"\/\">Home<\/a><a class=\"\" href=\"\/solutions\/\">Solutions<\/a><a class=\"\" href=\"\/cp-academy\/\">CP Academy<\/a><a class=\"\" href=\"\/ai-literacy\/\">AI Literacy<\/a><a class=\"active\" href=\"\/resources\/\">Resources<\/a><a class=\"\" href=\"\/about\/\">About<\/a><a class=\"\" href=\"\/contact\/\">Contact<\/a><\/nav>\n<p>      <a class=\"ati-header-cta\" href=\"\/contact\/\">Partner With Us<\/a><br \/>\n    <\/header>\n<p>    <main><\/p>\n<section class=\"ati-hero\">\n<div>\n<p class=\"ati-label\">CP Weekly Challenge<\/p>\n<h1 aria-label=\"CCC 2025 J5 - Connecting Territories Solution &amp; Analysis\"><span class=\"ati-hero-title-line\"><span class=\"ati-word\"><span class=\"ati-letter\" style=\"--i:0\">C<\/span><span class=\"ati-letter\" style=\"--i:1\">C<\/span><span class=\"ati-letter\" style=\"--i:2\">C<\/span><\/span> <span class=\"ati-word\"><span class=\"ati-letter\" style=\"--i:4\">2<\/span><span class=\"ati-letter\" style=\"--i:5\">0<\/span><span class=\"ati-letter\" style=\"--i:6\">2<\/span><span class=\"ati-letter\" style=\"--i:7\">5<\/span><\/span> <span class=\"ati-word\"><span class=\"ati-letter\" style=\"--i:9\">J<\/span><span class=\"ati-letter\" style=\"--i:10\">5<\/span><\/span> <span class=\"ati-word\"><span class=\"ati-letter\" style=\"--i:12\">&#8211;<\/span><\/span> <span class=\"ati-word\"><span class=\"ati-letter\" style=\"--i:14\">C<\/span><span class=\"ati-letter\" style=\"--i:15\">o<\/span><span class=\"ati-letter\" style=\"--i:16\">n<\/span><span class=\"ati-letter\" style=\"--i:17\">n<\/span><span class=\"ati-letter\" style=\"--i:18\">e<\/span><span class=\"ati-letter\" style=\"--i:19\">c<\/span><span class=\"ati-letter\" style=\"--i:20\">t<\/span><span class=\"ati-letter\" style=\"--i:21\">i<\/span><span class=\"ati-letter\" style=\"--i:22\">n<\/span><span class=\"ati-letter\" style=\"--i:23\">g<\/span><\/span> <span class=\"ati-word\"><span class=\"ati-letter\" style=\"--i:25\">T<\/span><span class=\"ati-letter\" style=\"--i:26\">e<\/span><span class=\"ati-letter\" style=\"--i:27\">r<\/span><span class=\"ati-letter\" style=\"--i:28\">r<\/span><span class=\"ati-letter\" style=\"--i:29\">i<\/span><span class=\"ati-letter\" style=\"--i:30\">t<\/span><span class=\"ati-letter\" style=\"--i:31\">o<\/span><span class=\"ati-letter\" style=\"--i:32\">r<\/span><span class=\"ati-letter\" style=\"--i:33\">i<\/span><span class=\"ati-letter\" style=\"--i:34\">e<\/span><span class=\"ati-letter\" style=\"--i:35\">s<\/span><\/span> <span class=\"ati-word\"><span class=\"ati-letter\" style=\"--i:37\">S<\/span><span class=\"ati-letter\" style=\"--i:38\">o<\/span><span class=\"ati-letter\" style=\"--i:39\">l<\/span><span class=\"ati-letter\" style=\"--i:40\">u<\/span><span class=\"ati-letter\" style=\"--i:41\">t<\/span><span class=\"ati-letter\" style=\"--i:42\">i<\/span><span class=\"ati-letter\" style=\"--i:43\">o<\/span><span class=\"ati-letter\" style=\"--i:44\">n<\/span><\/span> <span class=\"ati-word\"><span class=\"ati-letter\" style=\"--i:46\">&amp;<\/span><\/span> <span class=\"ati-word\"><span class=\"ati-letter\" style=\"--i:48\">A<\/span><span class=\"ati-letter\" style=\"--i:49\">n<\/span><span class=\"ati-letter\" style=\"--i:50\">a<\/span><span class=\"ati-letter\" style=\"--i:51\">l<\/span><span class=\"ati-letter\" style=\"--i:52\">y<\/span><span class=\"ati-letter\" style=\"--i:53\">s<\/span><span class=\"ati-letter\" style=\"--i:54\">i<\/span><span class=\"ati-letter\" style=\"--i:55\">s<\/span><\/span><\/span><\/h1>\n<p>Use dynamic programming, local neighbor transitions, and rolling arrays to find the minimum-cost path through a repeating-cost grid.<\/p>\n<div class=\"ati-article-meta\"><span>By Berny<\/span><span>June 27, 2026<\/span><\/div>\n<\/div>\n<aside class=\"ati-side\"><strong>DP<br \/>Grid<br \/>Rolling Array<\/strong><\/p>\n<p>CCC practice with structured explanation, implementation notes, and review questions.<\/p>\n<\/aside>\n<\/section>\n<section class=\"ati-article-shell\">\n<article class=\"ati-article-card\">\n<div class=\"ati-share-tools\" data-ati-share>\n<div class=\"ati-share-copy\">\n<p class=\"ati-share-kicker\">Share this article<\/p>\n<p class=\"ati-share-note\">Copy the link, open your phone share sheet, scan the QR code for WeChat, or send by email.<\/p>\n<\/p><\/div>\n<div class=\"ati-share-actions\">\n    <button type=\"button\" data-share-native>Share<\/button><br \/>\n    <button type=\"button\" data-share-copy-link>Copy Link<\/button><br \/>\n    <button type=\"button\" data-share-wechat>WeChat QR<\/button><br \/>\n    <a data-share-email>Email<\/a>\n  <\/div>\n<div class=\"ati-share-qr\" data-share-qr hidden>\n    <img loading=\"lazy\" data-share-qr-img alt=\"QR code for sharing this article\"><\/p>\n<p>Scan with WeChat, then share the article link.<\/p>\n<\/p><\/div>\n<p class=\"ati-share-status\" data-share-status aria-live=\"polite\">\n<\/div>\n<div class=\"ati-article-content\">\n<article class=\"ati-post-article\">\n<h2>Summary<\/h2>\n<p>This problem asks us to choose exactly one tile from each row of an <code>R x C<\/code> grid. Consecutive choices must touch by an edge or a corner, so from column <code>j<\/code> in one row, the next row can use column <code>j - 1<\/code>, <code>j<\/code>, or <code>j + 1<\/code>.<\/p>\n<p>Each tile has a cost generated by a repeating row-major sequence:<\/p>\n<pre><code class=\"language-text\">1, 2, 3, ..., M, 1, 2, 3, ..., M, ...<\/code><\/pre>\n<p>The goal is to find the minimum possible total cost from the first row to the last row.<\/p>\n<p>The key idea is dynamic programming. We keep the best cost to reach each column in the current row. Since each row only depends on the previous row, we can use rolling arrays and reduce memory to <code>O(C)<\/code>.<\/p>\n<h2>Understanding the Problem<\/h2>\n<p>We have an <code>R x C<\/code> grid. We must start in row 0 and end in row <code>R - 1<\/code>, choosing exactly one tile in every row.<\/p>\n<p>If we choose column <code>j<\/code> in the previous row, then in the next row we may choose:<\/p>\n<ul>\n<li><code>j - 1<\/code><\/li>\n<li><code>j<\/code><\/li>\n<li><code>j + 1<\/code><\/li>\n<\/ul>\n<p>as long as that column exists.<\/p>\n<p>The tile costs are not given directly. They are generated in row-major order:<\/p>\n<pre><code class=\"language-text\">1, 2, 3, ..., M, 1, 2, 3, ..., M, ...<\/code><\/pre>\n<p>For a 0-based cell <code>(r, c)<\/code>, its row-major index is:<\/p>\n<pre><code class=\"language-text\">index = r * C + c<\/code><\/pre>\n<p>So the cost is:<\/p>\n<pre><code class=\"language-text\">cost(r, c) = (index % M) + 1<\/code><\/pre>\n<p>We need to output the minimum total cost of any legal path.<\/p>\n<h2>Core DSA Concepts Involved<\/h2>\n<ul>\n<li>Dynamic Programming<\/li>\n<\/ul>\n<p>Use a state to represent the best cost to reach a position.<\/p>\n<ul>\n<li>State Transition<\/li>\n<\/ul>\n<p>Each current cell can only be reached from at most three neighboring cells in the previous row.<\/p>\n<ul>\n<li>Rolling Array<\/li>\n<\/ul>\n<p>The current row depends only on the previous row, so we do not need to store the full <code>R x C<\/code> DP table.<\/p>\n<ul>\n<li>Grid Path Optimization<\/li>\n<\/ul>\n<p>This is a classic grid DP pattern with local transitions between rows.<\/p>\n<h2>Dynamic Programming Idea<\/h2>\n<p>Define:<\/p>\n<pre><code class=\"language-text\">dp[r][j] = minimum total cost to reach row r, column j<\/code><\/pre>\n<p>The base row is:<\/p>\n<pre><code class=\"language-text\">dp[0][j] = cost(0, j)<\/code><\/pre>\n<p>For later rows:<\/p>\n<pre><code class=\"language-text\">dp[r][j] = cost(r, j) + min(\n    dp[r - 1][j - 1],\n    dp[r - 1][j],\n    dp[r - 1][j + 1]\n)<\/code><\/pre>\n<p>Only valid columns are included.<\/p>\n<p>The final answer is:<\/p>\n<pre><code class=\"language-text\">answer = min(dp[R - 1][j])<\/code><\/pre>\n<h2>Why Rolling Arrays Work<\/h2>\n<p>A full 2D DP table would use:<\/p>\n<pre><code class=\"language-text\">O(R * C)<\/code><\/pre>\n<p>space.<\/p>\n<p>But when computing row <code>r<\/code>, we only need row <code>r - 1<\/code>.<\/p>\n<p>So we keep two arrays:<\/p>\n<ul>\n<li><code>prev[j]<\/code>: best cost to reach column <code>j<\/code> in the previous row<\/li>\n<li><code>cur[j]<\/code>: best cost to reach column <code>j<\/code> in the current row<\/li>\n<\/ul>\n<p>After finishing one row, we swap them:<\/p>\n<pre><code class=\"language-text\">prev, cur = cur, prev<\/code><\/pre>\n<p>The memory becomes:<\/p>\n<pre><code class=\"language-text\">O(C)<\/code><\/pre>\n<h2>Computing Tile Costs<\/h2>\n<p>A common source of mistakes is the cost pattern.<\/p>\n<p>The costs continue across the whole grid in row-major order. They do not restart at 1 for each row.<\/p>\n<p>For example, if <code>C = 4<\/code> and <code>M = 5<\/code>, the grid costs begin:<\/p>\n<pre><code class=\"language-text\">row 0: 1 2 3 4\nrow 1: 5 1 2 3\nrow 2: 4 5 1 2\n...<\/code><\/pre>\n<p>So the first cost in each new row advances by <code>C<\/code> positions in the repeating sequence.<\/p>\n<p>The code uses:<\/p>\n<pre><code class=\"language-text\">row_start = ((row_start - 1 + C) % M) + 1<\/code><\/pre>\n<p>to compute the first tile cost of the next row.<\/p>\n<p>Then each column increases the cost by 1, wrapping back to 1 after <code>M<\/code>.<\/p>\n<h2>Python Solution<\/h2>\n<pre><code class=\"language-python\"># CCC 2025 J5 - Connecting Territories\n# Dynamic Programming with rolling arrays\n# Time:  O(R * C)\n# Space: O(C)\n\nR = int(input())\nC = int(input())\nM = int(input())\n\n# prev[j] = best cost to reach column j in the previous row\nprev = [0] * C\ncur = [0] * C\n\n# Row 0 costs: 1, 2, 3, ..., M, 1, 2, ...\nv = 1\nfor j in range(C):\n    prev[j] = v\n    v += 1\n    if v == M + 1:\n        v = 1\n\n# row_start is the first tile value in the current row.\n# Row 0 starts at 1. Each next row advances by C positions.\nrow_start = 1\n\nfor r in range(1, R):\n    row_start = ((row_start - 1 + C) % M) + 1\n    v = row_start\n\n    if C == 1:\n        # Only one column: must go straight down\n        cur[0] = prev[0] + v\n    else:\n        # First column: can only come from prev[0] or prev[1]\n        best = min(prev[0], prev[1])\n        cur[0] = best + v\n\n        v += 1\n        if v == M + 1:\n            v = 1\n\n        # Middle columns\n        for j in range(1, C - 1):\n            best = min(prev[j - 1], prev[j], prev[j + 1])\n            cur[j] = best + v\n\n            v += 1\n            if v == M + 1:\n                v = 1\n\n        # Last column: can only come from prev[C - 2] or prev[C - 1]\n        best = min(prev[C - 2], prev[C - 1])\n        cur[C - 1] = best + v\n\n    prev, cur = cur, prev\n\nprint(min(prev))<\/code><\/pre>\n<h2>C++ Solution<\/h2>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;algorithm&gt;\n\nusing namespace std;\n\n\/\/ CCC 2025 J5 - Connecting Territories\n\/\/ Dynamic Programming with rolling arrays\n\/\/ Time:  O(R * C)\n\/\/ Space: O(C)\n\nint main() {\n    int R, C, M;\n    cin &gt;&gt; R &gt;&gt; C &gt;&gt; M;\n\n    vector&lt;long long&gt; prev(C, 0), cur(C, 0);\n\n    \/\/ Row 0 costs: 1, 2, 3, ..., M, 1, 2, ...\n    int v = 1;\n    for (int j = 0; j &lt; C; j++) {\n        prev[j] = v;\n        v++;\n        if (v == M + 1) v = 1;\n    }\n\n    \/\/ row_start is the first tile value in the current row.\n    \/\/ Row 0 starts at 1. Each next row advances by C positions.\n    int row_start = 1;\n\n    for (int r = 1; r &lt; R; r++) {\n        row_start = ((row_start - 1 + C) % M) + 1;\n        v = row_start;\n\n        if (C == 1) {\n            \/\/ Only one column: must go straight down\n            cur[0] = prev[0] + v;\n        } else {\n            \/\/ First column: can only come from prev[0] or prev[1]\n            long long best = min(prev[0], prev[1]);\n            cur[0] = best + v;\n\n            v++;\n            if (v == M + 1) v = 1;\n\n            \/\/ Middle columns\n            for (int j = 1; j &lt; C - 1; j++) {\n                best = min(prev[j - 1], min(prev[j], prev[j + 1]));\n                cur[j] = best + v;\n\n                v++;\n                if (v == M + 1) v = 1;\n            }\n\n            \/\/ Last column: can only come from prev[C - 2] or prev[C - 1]\n            best = min(prev[C - 2], prev[C - 1]);\n            cur[C - 1] = best + v;\n        }\n\n        prev.swap(cur);\n    }\n\n    cout &lt;&lt; *min_element(prev.begin(), prev.end()) &lt;&lt; &quot;\\n&quot;;\n    return 0;\n}<\/code><\/pre>\n<h2>Complexity Analysis<\/h2>\n<p>There are <code>R<\/code> rows and <code>C<\/code> columns.<\/p>\n<p>Each row computes <code>C<\/code> states, so the time complexity is:<\/p>\n<pre><code class=\"language-text\">O(R * C)<\/code><\/pre>\n<p>We only store two arrays of length <code>C<\/code>, so the space complexity is:<\/p>\n<pre><code class=\"language-text\">O(C)<\/code><\/pre>\n<h2>Common Mistakes<\/h2>\n<ul>\n<li>Restarting the tile costs from 1 on every row<\/li>\n<\/ul>\n<p>The cost sequence continues across the whole grid in row-major order.<\/p>\n<ul>\n<li>Forgetting the boundary columns<\/li>\n<\/ul>\n<p>Column 0 cannot use <code>j - 1<\/code>; column <code>C - 1<\/code> cannot use <code>j + 1<\/code>.<\/p>\n<ul>\n<li>Forgetting the <code>C == 1<\/code> case<\/li>\n<\/ul>\n<p>With only one column, the path must go straight down.<\/p>\n<ul>\n<li>Using a full 2D DP table unnecessarily<\/li>\n<\/ul>\n<p>A 2D DP table works conceptually, but rolling arrays are more memory efficient.<\/p>\n<ul>\n<li>Using <code>int<\/code> for the total cost in C++<\/li>\n<\/ul>\n<p>The total cost may be large. <code>long long<\/code> is safer.<\/p>\n<h2>Learning Outcomes<\/h2>\n<p>After this problem, students should be able to:<\/p>\n<ul>\n<li>Recognize a grid path dynamic programming problem<\/li>\n<li>Use <code>dp[row][col]<\/code> to represent an optimal value at a position<\/li>\n<li>Transition from local neighboring states<\/li>\n<li>Optimize DP memory with rolling arrays<\/li>\n<li>Handle boundary columns and special cases<\/li>\n<li>Understand row-major order and repeating tile costs<\/li>\n<\/ul>\n<h2>Review Questions<\/h2>\n<ol>\n<li>Why does <code>dp[r][j]<\/code> depend only on the previous row?<\/li>\n<\/ol>\n<ol>\n<li>Why do we need a special case when <code>C == 1<\/code>?<\/li>\n<\/ol>\n<ol>\n<li>Why should tile costs not restart at 1 for each row?<\/li>\n<\/ol>\n<ol>\n<li>Why can rolling arrays reduce memory from <code>O(R * C)<\/code> to <code>O(C)<\/code>?<\/li>\n<\/ol>\n<ol>\n<li>If the path could only move straight down and not diagonally, how would the transition formula change?<\/li>\n<\/ol>\n<\/article>\n<\/div>\n<section class=\"ati-feedback-cta\" data-ati-feedback>\n<div class=\"ati-feedback-copy\">\n<p class=\"ati-feedback-title\">Questions or feedback?<\/p>\n<p class=\"ati-feedback-note\">If you have questions about this article or suggestions for improvement, send us a private message.<\/p>\n<\/p><\/div>\n<p>  <a class=\"ati-feedback-button\" href=\"\/contact\/\" data-ati-feedback-link>Send Feedback<\/a><br \/>\n<\/section>\n<div class=\"ati-article-back\">\n  <a href=\"\/cp-weekly-challenge\/\">\u2190 Back to CP Weekly Challenge<\/a>\n<\/div>\n<\/article>\n<\/section>\n<p>    <\/main><\/p>\n<footer class=\"ati-footer\">\n      <a class=\"ati-brand ati-logo\" href=\"\/\" aria-label=\"Accel Thinking home\"><img data-recalc-dims=\"1\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png?ssl=1\" alt=\"Accel Thinking\"><\/a><\/p>\n<nav><a href=\"\/\">Home<\/a><a href=\"\/solutions\/\">Solutions<\/a><a href=\"\/cp-academy\/\">CP Academy<\/a><a href=\"\/ai-literacy\/\">AI Literacy<\/a><a href=\"\/resources\/\">Resources<\/a><a href=\"\/it-consulting\/\">IT Consulting<\/a><a href=\"\/about\/\">About<\/a><a href=\"\/contact\/\">Contact<\/a><\/nav>\n<address><a href=\"mailto:info@accelthinking.com\">info@accelthinking.com<\/a><span>Oakville, Ontario, Canada<\/span><\/address>\n<\/footer><\/div>\n<p><script>\n(function(){\n  if (!location.pathname.toLowerCase().includes('\/zh_cn')) return;\n  const map = {\"Home\": \"\u9996\u9875\", \"Solutions\": \"\u89e3\u51b3\u65b9\u6848\", \"CP Academy\": \"CP \u5b66\u9662\", \"Python Assessment\": \"Python \u7f16\u7a0b\u80fd\u529b\u8bc4\u4f30\", \"IT Consulting\": \"IT \u54a8\u8be2\", \"About\": \"\u5173\u4e8e\u6211\u4eec\", \"Contact\": \"\u8054\u7cfb\u6211\u4eec\", \"Accel Thinking\": \"\u52a0\u901f\u5ea6\u601d\u7ef4\", \"Partner With Us\": \"\u6210\u4e3a\u5408\u4f5c\u4f19\u4f34\", \"Close\": \"\u5173\u95ed\", \"Competitive Programming Education & Technology Consulting\": \"\u7ade\u8d5b\u7f16\u7a0b\u6559\u80b2\u4e0e\u6280\u672f\u54a8\u8be2\", \"Technology Education Solutions for Future Innovators\": \"\u9762\u5411\u672a\u6765\u521b\u65b0\u8005\u7684\u79d1\u6280\u6559\u80b2\u89e3\u51b3\u65b9\u6848\", \"for Future Innovators\": \"\u9762\u5411\u672a\u6765\u521b\u65b0\u8005\", \"Curriculum. Instructors. Delivery.\": \"\u8bfe\u7a0b\u4f53\u7cfb\u3002\u6559\u5e08\u56e2\u961f\u3002\u4ea4\u4ed8\u652f\u6301\u3002\", \"Helping educational organizations deliver engaging competitive programming programs and helping businesses make informed technology decisions.\": \"\u5e2e\u52a9\u6559\u80b2\u673a\u6784\u4ea4\u4ed8\u6709\u5438\u5f15\u529b\u7684\u7ade\u8d5b\u7f16\u7a0b\u8bfe\u7a0b\uff0c\u5e76\u5e2e\u52a9\u4f01\u4e1a\u505a\u51fa\u66f4\u660e\u667a\u7684\u6280\u672f\u51b3\u7b56\u3002\", \"Explore Solutions\": \"\u63a2\u7d22\u89e3\u51b3\u65b9\u6848\", \"Explore CP Academy\": \"\u63a2\u7d22 CP \u5b66\u9662\", \"Complete programs with curriculum, instructors, materials, assessments, and delivery support.\": \"\u5b8c\u6574\u8bfe\u7a0b\u65b9\u6848\uff0c\u5305\u542b\u8bfe\u7a0b\u4f53\u7cfb\u3001\u6559\u5e08\u3001\u6750\u6599\u3001\u8bc4\u4f30\u4e0e\u4ea4\u4ed8\u652f\u6301\u3002\", \"Structured competitive programming pathways and CCC preparation for students aged 12-16.\": \"\u9762\u5411 12-16 \u5c81\u5b66\u751f\u7684\u7ed3\u6784\u5316\u7ade\u8d5b\u7f16\u7a0b\u8def\u5f84\u4e0e CCC \u5907\u8003\u3002\", \".NET, React, architecture review, and AI adoption consulting for modern software teams.\": \"\u4e3a\u73b0\u4ee3\u8f6f\u4ef6\u56e2\u961f\u63d0\u4f9b .NET\u3001React\u3001\u67b6\u6784\u8bc4\u5ba1\u4e0e AI \u5e94\u7528\u54a8\u8be2\u3002\", \"Learn More\": \"\u4e86\u89e3\u66f4\u591a\", \"Why Accel Thinking\": \"\u4e3a\u4ec0\u4e48\u9009\u62e9\u52a0\u901f\u5ea6\u601d\u7ef4\", \"Beyond Coding Lessons\": \"\u4e0d\u53ea\u662f\u7f16\u7a0b\u8bfe\", \"Problem Solving Skills\": \"\u95ee\u9898\u89e3\u51b3\u80fd\u529b\", \"Algorithmic Thinking\": \"\u7b97\u6cd5\u601d\u7ef4\", \"Confidence & Communication\": \"\u81ea\u4fe1\u4e0e\u6c9f\u901a\", \"Engineering Mindset\": \"\u5de5\u7a0b\u601d\u7ef4\", \"CP Academy Pathway\": \"CP \u5b66\u9662\u5b66\u4e60\u8def\u5f84\", \"From foundation programming to CCC Senior readiness.\": \"\u4ece\u7f16\u7a0b\u57fa\u7840\u5230 CCC\u9ad8\u7ea7\u5907\u8003\u3002\", \"View Learning Pathway\": \"\u67e5\u770b\u5b66\u4e60\u8def\u5f84\", \"Latest CP Weekly Challenge\": \"\u6700\u65b0 CP \u6bcf\u5468\u6311\u6218\", \"Weekly articles built for search, practice, and long-term authority.\": \"\u9762\u5411\u641c\u7d22\u3001\u7ec3\u4e60\u548c\u957f\u671f\u5185\u5bb9\u79ef\u7d2f\u7684\u6bcf\u5468\u6587\u7ae0\u3002\", \"CCC 2024 J3 - Solution & Analysis\": \"CCC 2024 J3 - \u89e3\u9898\u4e0e\u5206\u6790\", \"CCC 2024 J3 \u2013 Solution & Analysis\": \"CCC 2024 J3 - \u89e3\u9898\u4e0e\u5206\u6790\", \"CCC 2023 S1 - Solution & Analysis\": \"CCC 2023 S1 - \u89e3\u9898\u4e0e\u5206\u6790\", \"CCC 2023 S1 \u2013 Solution & Analysis\": \"CCC 2023 S1 - \u89e3\u9898\u4e0e\u5206\u6790\", \"CCC 2022 J5 - Solution & Analysis\": \"CCC 2022 J5 - \u89e3\u9898\u4e0e\u5206\u6790\", \"CCC 2022 J5 \u2013 Solution & Analysis\": \"CCC 2022 J5 - \u89e3\u9898\u4e0e\u5206\u6790\", \"Topics: Simulation | Difficulty: 3\/5\": \"\u4e3b\u9898\uff1a\u6a21\u62df | \u96be\u5ea6\uff1a3\/5\", \"Topics: Ad Hoc | Difficulty: 3\/5\": \"\u4e3b\u9898\uff1a\u4e34\u573a\u601d\u7ef4 | \u96be\u5ea6\uff1a3\/5\", \"Topics: Graph | Difficulty: 4\/5\": \"\u4e3b\u9898\uff1a\u56fe\u8bba | \u96be\u5ea6\uff1a4\/5\", \"View All Challenges\": \"\u67e5\u770b\u6240\u6709\u6311\u6218\", \"Programs that learning centers, schools, and community organizations can launch with confidence.\": \"\u8ba9\u5b66\u4e60\u4e2d\u5fc3\u3001\u5b66\u6821\u548c\u793e\u533a\u7ec4\u7ec7\u80fd\u591f\u653e\u5fc3\u542f\u52a8\u7684\u8bfe\u7a0b\u9879\u76ee\u3002\", \"Delivery Models\": \"\u6388\u8bfe\u6a21\u5f0f\", \"Online, in-person, and hybrid programs designed for flexible operations.\": \"\u652f\u6301\u7ebf\u4e0a\u3001\u7ebf\u4e0b\u548c\u6df7\u5408\u6388\u8bfe\uff0c\u9002\u914d\u7075\u6d3b\u8fd0\u8425\u3002\", \"Partner Audience\": \"\u5408\u4f5c\u5bf9\u8c61\", \"Learning centers, private academies, schools, and community organizations.\": \"\u5b66\u4e60\u4e2d\u5fc3\u3001\u79c1\u7acb\u57f9\u8bad\u673a\u6784\u3001\u5b66\u6821\u548c\u793e\u533a\u7ec4\u7ec7\u3002\", \"Practical technology consulting for modern software teams.\": \"\u9762\u5411\u73b0\u4ee3\u8f6f\u4ef6\u56e2\u961f\u7684\u5b9e\u7528\u6280\u672f\u54a8\u8be2\u3002\", \"Independent guidance for teams that need better architecture decisions, clearer delivery paths, or a grounded AI adoption strategy.\": \"\u4e3a\u9700\u8981\u66f4\u597d\u67b6\u6784\u51b3\u7b56\u3001\u66f4\u6e05\u6670\u4ea4\u4ed8\u8def\u5f84\u6216\u52a1\u5b9e AI \u7b56\u7565\u7684\u56e2\u961f\u63d0\u4f9b\u72ec\u7acb\u6307\u5bfc\u3002\", \"Architecture\": \"\u67b6\u6784\", \"AI Adoption\": \"AI \u5e94\u7528\", \"AI evaluation, integration, automation, and business strategy.\": \"AI \u8bc4\u4f30\u3001\u96c6\u6210\u3001\u81ea\u52a8\u5316\u4e0e\u4e1a\u52a1\u7b56\u7565\u3002\", \"About Accel Thinking\": \"\u5173\u4e8e\u52a0\u901f\u5ea6\u601d\u7ef4\", \"Software Architect\": \"\u8f6f\u4ef6\u67b6\u6784\u5e08\", \"Technology Educator\": \"\u79d1\u6280\u6559\u80b2\u8005\", \"Curriculum Designer\": \"\u8bfe\u7a0b\u8bbe\u8ba1\u8005\", \"20+ Years Experience\": \"20+ \u5e74\u7ecf\u9a8c\", \"We work with learning centers, schools, and organizations to deliver high-quality technology programs.\": \"\u6211\u4eec\u4e0e\u5b66\u4e60\u4e2d\u5fc3\u3001\u5b66\u6821\u548c\u7ec4\u7ec7\u5408\u4f5c\uff0c\u4ea4\u4ed8\u9ad8\u8d28\u91cf\u79d1\u6280\u8bfe\u7a0b\u3002\", \"Let's Work Together\": \"\u4e00\u8d77\u5408\u4f5c\", \"Let\u2019s Work Together\": \"\u4e00\u8d77\u5408\u4f5c\", \"Years of Experience\": \"\u5e74\u7ecf\u9a8c\", \"Students Taught\": \"\u6559\u6388\u5b66\u751f\", \"Partner Organizations\": \"\u5408\u4f5c\u673a\u6784\", \"Weekly Challenges\": \"\u6bcf\u5468\u6311\u6218\", \"Educational Partnerships\": \"\u6559\u80b2\u5408\u4f5c\", \"Technology Education Solutions\": \"\u79d1\u6280\u6559\u80b2\u89e3\u51b3\u65b9\u6848\", \"Complete competitive programming and computer science programs for learning centers, schools, academies, and community organizations.\": \"\u4e3a\u5b66\u4e60\u4e2d\u5fc3\u3001\u5b66\u6821\u3001\u57f9\u8bad\u673a\u6784\u548c\u793e\u533a\u7ec4\u7ec7\u63d0\u4f9b\u5b8c\u6574\u7684\u7ade\u8d5b\u7f16\u7a0b\u4e0e\u8ba1\u7b97\u673a\u79d1\u5b66\u8bfe\u7a0b\u65b9\u6848\u3002\", \"Start a Partnership Inquiry\": \"\u53d1\u8d77\u5408\u4f5c\u54a8\u8be2\", \"Curriculum.\": \"\u8bfe\u7a0b\u4f53\u7cfb\u3002\", \"Instructors.\": \"\u6559\u5e08\u56e2\u961f\u3002\", \"Delivery.\": \"\u4ea4\u4ed8\u652f\u6301\u3002\", \"A partner-ready operating model for launching technology programs.\": \"\u9762\u5411\u5408\u4f5c\u4f19\u4f34\u7684\u79d1\u6280\u8bfe\u7a0b\u843d\u5730\u8fd0\u8425\u6a21\u5f0f\u3002\", \"Included Services\": \"\u670d\u52a1\u5185\u5bb9\", \"Curriculum, qualified instructors, teaching materials, assessments, and delivery support.\": \"\u8bfe\u7a0b\u63d0\u4f9b\uff0c\u8ba4\u8bc1\u6559\u5e08\uff0c\u6559\u6848\uff0c\u6559\u5b66\u8bc4\u4f30\uff0c\u4ea4\u4ed8\u652f\u6301\u3002\", \"Everything needed to deliver a structured, high-quality program.\": \"\u4ea4\u4ed8\u7ed3\u6784\u5316\u3001\u9ad8\u8d28\u91cf\u8bfe\u7a0b\u6240\u9700\u7684\u4e00\u5207\u652f\u6301\u3002\", \"Curriculum\": \"\u8bfe\u7a0b\u4f53\u7cfb\", \"Structured learning plans for Python, competitive programming, and CCC preparation.\": \"\u9762\u5411 Python \u548c C++\u3001\u7ade\u8d5b\u7f16\u7a0b\u548c CCC \u5907\u8003\u7684\u7ed3\u6784\u5316\u5b66\u4e60\u8ba1\u5212\u3002\", \"Structured learning plans for Python and C++, competitive programming, and CCC preparation.\": \"\u9762\u5411 Python \u548c C++\u3001\u7ade\u8d5b\u7f16\u7a0b\u548c CCC \u5907\u8003\u7684\u7ed3\u6784\u5316\u5b66\u4e60\u8ba1\u5212\u3002\", \"Qualified Instructors\": \"\u5408\u683c\u6559\u5e08\", \"Technology educators who understand programming, problem solving, and student confidence.\": \"\u7406\u89e3\u7f16\u7a0b\u3001\u95ee\u9898\u89e3\u51b3\u548c\u5b66\u751f\u4fe1\u5fc3\u57f9\u517b\u7684\u79d1\u6280\u6559\u80b2\u8005\u3002\", \"Teaching Materials\": \"\u6559\u5b66\u6750\u6599\", \"Lesson assets, examples, practice problems, and class-ready delivery support.\": \"\u8bfe\u7a0b\u8d44\u6e90\u3001\u793a\u4f8b\u3001\u7ec3\u4e60\u9898\u4ee5\u53ca\u53ef\u76f4\u63a5\u7528\u4e8e\u8bfe\u5802\u7684\u6559\u5b66\u652f\u6301\u3002\", \"Assessments\": \"\u5b66\u4e60\u8bc4\u4f30\", \"Milestone checks that track understanding, skills, and next-level readiness.\": \"\u901a\u8fc7\u9636\u6bb5\u6027\u68c0\u67e5\u8ddf\u8e2a\u7406\u89e3\u7a0b\u5ea6\u3001\u6280\u80fd\u6210\u957f\u548c\u8fdb\u9636\u51c6\u5907\u5ea6\u3002\", \"Delivery Support\": \"\u4ea4\u4ed8\u652f\u6301\", \"Online, in-person, and hybrid delivery models for different partner operations.\": \"\u652f\u6301\u7ebf\u4e0a\u3001\u7ebf\u4e0b\u548c\u6df7\u5408\u6388\u8bfe\uff0c\u9002\u914d\u4e0d\u540c\u5408\u4f5c\u673a\u6784\u7684\u8fd0\u8425\u65b9\u5f0f\u3002\", \"Program Areas\": \"\u8bfe\u7a0b\u65b9\u5411\", \"Python programming, competitive programming, and CCC preparation.\": \"Python \u548c C++ \u7f16\u7a0b\uff0c\u7ade\u8d5b\u7f16\u7a0b\uff0cCCC\u5907\u8d5b\u3002\", \"Python and C++ programming, competitive programming, and CCC preparation.\": \"Python \u548c C++ \u7f16\u7a0b\uff0c\u7ade\u8d5b\u7f16\u7a0b\uff0cCCC\u5907\u8d5b\u3002\", \"Built around durable skills.\": \"\u56f4\u7ed5\u957f\u671f\u53d7\u7528\u7684\u80fd\u529b\u6784\u5efa\u3002\", \"Programs help students build computational thinking, clear reasoning, and disciplined implementation habits.\": \"\u8bfe\u7a0b\u5e2e\u52a9\u5b66\u751f\u5efa\u7acb\u8ba1\u7b97\u601d\u7ef4\u3001\u6e05\u6670\u63a8\u7406\u80fd\u529b\u548c\u4e25\u8c28\u7684\u5b9e\u73b0\u4e60\u60ef\u3002\", \"Python Programming\": \"Python \u548c C++ \u7f16\u7a0b\", \"Python and C++ Programming\": \"Python \u548c C++ \u7f16\u7a0b\", \"Foundation syntax, control flow, data structures, and problem decomposition.\": \"\u57fa\u7840\u8bed\u6cd5\u3001\u6d41\u7a0b\u63a7\u5236\u3001\u6570\u636e\u7ed3\u6784\u4e0e\u95ee\u9898\u62c6\u89e3\u3002\", \"Competitive Programming\": \"\u7ade\u8d5b\u7f16\u7a0b\", \"Pattern recognition, algorithmic thinking, debugging, and time-aware practice.\": \"\u6a21\u5f0f\u8bc6\u522b\u3001\u7b97\u6cd5\u601d\u7ef4\u3001\u8c03\u8bd5\u80fd\u529b\u548c\u65f6\u95f4\u610f\u8bc6\u8bad\u7ec3\u3002\", \"CCC Preparation\": \"CCC \u5907\u8003\", \"Progressive preparation for CCC Junior and Senior question styles.\": \"\u9488\u5bf9 CCC \u521d\u7ea7\u548c\u9ad8\u7ea7\u9898\u578b\u7684\u5faa\u5e8f\u6e10\u8fdb\u5f0f\u8bad\u7ec3\u3002\", \"Students Aged 12-16\": \"\u9762\u5411 12-16 \u5c81\u5b66\u751f\", \"Competitive Programming & CCC Preparation\": \"\u7ade\u8d5b\u7f16\u7a0b\u4e0e CCC \u5907\u8003\", \"CP Academy helps students grow from foundation programming into confident, structured problem solvers.\": \"CP \u5b66\u9662\u5e2e\u52a9\u5b66\u751f\u4ece\u7f16\u7a0b\u57fa\u7840\u9010\u6b65\u6210\u957f\u4e3a\u81ea\u4fe1\u3001\u7ed3\u6784\u5316\u7684\u95ee\u9898\u89e3\u51b3\u8005\u3002\", \"Ask About CP Academy\": \"\u54a8\u8be2 CP \u5b66\u9662\", \"CP Weekly Challenge\": \"CP \u6bcf\u5468\u6311\u6218\", \"think -> solve -> implement -> review\": \"\u601d\u8003 -> \u6c42\u89e3 -> \u5b9e\u73b0 -> \u590d\u76d8\", \"View Challenges ->\": \"\u67e5\u770b\u6311\u6218 ->\", \"Learning Pathway\": \"\u5b66\u4e60\u8def\u5f84\", \"A clear progression from programming foundations to CCC Senior readiness.\": \"\u4ece\u7f16\u7a0b\u57fa\u7840\u5230 CCC\u9ad8\u7ea7\u5907\u8003\u7684\u6e05\u6670\u8fdb\u9636\u8def\u5f84\u3002\", \"Foundation Programming\": \"\u7f16\u7a0b\u57fa\u7840\", \"FoundationProgramming\": \"\u7f16\u7a0b\u57fa\u7840\", \"\u7f16\u7a0b\u57fa\u7840Programming\": \"\u7f16\u7a0b\u57fa\u7840\", \"Foundation\": \"\u7f16\u7a0b\u57fa\u7840\", \"Core Python and debugging habits.\": \"\u6838\u5fc3 Python \u548c C++ \u7f16\u7a0b\u80fd\u529b\u4e0e\u8c03\u8bd5\u4e60\u60ef\u3002\", \"Core Python and C++ programming and debugging habits.\": \"\u6838\u5fc3 Python \u548c C++ \u7f16\u7a0b\u80fd\u529b\u4e0e\u8c03\u8bd5\u4e60\u60ef\u3002\", \"CCC Junior J1-J2\": \"CCC Junior J1-J2\", \"CCC J30s\": \"CCC \u521d\u7ea730\u5206\", \"CCCJ30s\": \"CCC \u521d\u7ea730\u5206\", \"Careful reading, simulation, and short solutions.\": \"\u8ba4\u771f\u8bfb\u9898\u3001\u6a21\u62df\u8fc7\u7a0b\u548c\u77ed\u4ee3\u7801\u89e3\u6cd5\u3002\", \"CCC Junior J3-J4\": \"CCC Junior J3-J4\", \"CCC J60s\": \"CCC \u521d\u7ea760\u5206\", \"CCCJ60s\": \"CCC \u521d\u7ea760\u5206\", \"Multi-step logic and structured testing.\": \"\u591a\u6b65\u9aa4\u903b\u8f91\u4e0e\u7ed3\u6784\u5316\u6d4b\u8bd5\u3002\", \"CCC Junior J5\": \"CCC Junior J5\", \"CCC J75s\": \"CCC \u521d\u7ea7\u6ee1\u5206\", \"CCCJ75s\": \"CCC \u521d\u7ea7\u6ee1\u5206\", \"Search, recursion, and deeper reasoning.\": \"\u641c\u7d22\u3001\u9012\u5f52\u4e0e\u66f4\u6df1\u5165\u7684\u63a8\u7406\u3002\", \"CCC Senior S1-S4\": \"CCC Senior S1-S4\", \"CCC S45s\": \"CCC \u9ad8\u7ea745\u5206\", \"CCCS45s\": \"CCC \u9ad8\u7ea745\u5206\", \"Algorithmic patterns and complexity analysis.\": \"\u7b97\u6cd5\u6a21\u5f0f\u4e0e\u590d\u6742\u5ea6\u5206\u6790\u3002\", \"Benefits\": \"\u5b66\u4e60\u6536\u83b7\", \"Students build the mindset behind strong technical work.\": \"\u5b66\u751f\u5efa\u7acb\u624e\u5b9e\u6280\u672f\u80fd\u529b\u80cc\u540e\u7684\u601d\u7ef4\u65b9\u5f0f\u3002\", \"Problem Solving\": \"\u95ee\u9898\u89e3\u51b3\", \"Logical Thinking\": \"\u903b\u8f91\u601d\u7ef4\", \"Programming Skills\": \"\u7f16\u7a0b\u80fd\u529b\", \"University Readiness\": \"\u5927\u5b66\u51c6\u5907\", \"Confidence\": \"\u81ea\u4fe1\u8868\u8fbe\", \"Practice & Review\": \"\u7ec3\u4e60\u4e0e\u590d\u76d8\", \"Explore CP Weekly Challenge articles.\": \"\u67e5\u770b CP \u6bcf\u5468\u6311\u6218\u6587\u7ae0\u3002\", \"Weekly CCC-style problems with explanations, implementation notes, and learning outcomes.\": \"\u6bcf\u5468 CCC \u98ce\u683c\u9898\u76ee\uff0c\u5305\u542b\u8bb2\u89e3\u3001\u5b9e\u73b0\u8bf4\u660e\u548c\u5b66\u4e60\u76ee\u6807\u3002\", \"View Challenges\": \"\u67e5\u770b\u6311\u6218\", \"Placement Check\": \"\u80fd\u529b\u8bca\u65ad\", \"Assess your Python readiness before choosing a CP Academy pathway.\": \"\u5728\u9009\u62e9 CP \u5b66\u9662\u5b66\u4e60\u8def\u5f84\u524d\uff0c\u5148\u8bc4\u4f30\u81ea\u5df1\u7684 Python \u7f16\u7a0b\u57fa\u7840\u3002\", \"Start Python Assessment\": \"\u5f00\u59cb Python \u7f16\u7a0b\u80fd\u529b\u8bc4\u4f30\", \"Python readiness for CCC-style learning.\": \"\u9762\u5411 CCC \u5b66\u4e60\u7684 Python \u80fd\u529b\u8bca\u65ad\u3002\", \"Use a short multiple-choice quiz and a coding challenge to understand your current programming level before choosing a class path.\": \"\u901a\u8fc7\u7b80\u77ed\u9009\u62e9\u9898\u548c\u4ee3\u7801\u6311\u6218\uff0c\u4e86\u89e3\u5f53\u524d\u7f16\u7a0b\u6c34\u5e73\uff0c\u518d\u9009\u62e9\u5408\u9002\u7684\u8bfe\u7a0b\u8def\u5f84\u3002\", \"Start the Quiz\": \"\u5f00\u59cb\u6d4b\u8bc4\", \"Placement Assessment\": \"\u5206\u7ea7\u6d4b\u8bc4\", \"Section A\": \"A \u90e8\u5206\", \"Section B\": \"B \u90e8\u5206\", \"Section C\": \"C \u90e8\u5206\", \"Part 1: Multiple-Choice Check\": \"\u7b2c\u4e00\u90e8\u5206\uff1a\u9009\u62e9\u9898\u6d4b\u8bc4\", \"Answer these questions first. They focus on Python basics, control flow, data structures, and algorithmic thinking.\": \"\u5148\u5b8c\u6210\u8fd9\u4e9b\u9009\u62e9\u9898\uff0c\u5185\u5bb9\u8986\u76d6 Python \u57fa\u7840\u3001\u6d41\u7a0b\u63a7\u5236\u3001\u6570\u636e\u7ed3\u6784\u548c\u7b97\u6cd5\u601d\u7ef4\u3002\", \"Check My Score\": \"\u67e5\u770b\u6211\u7684\u5206\u6570\", \"Answer key: 1-B, 2-B, 3-C, 4-A, 5-B, 6-B, 7-B, 8-A.\": \"\u7b54\u6848\uff1a1-B\uff0c2-B\uff0c3-C\uff0c4-A\uff0c5-B\uff0c6-B\uff0c7-B\uff0c8-A\u3002\", \"0-3 correct: Foundation Programming\": \"\u7b54\u5bf9 0-3 \u9898\uff1a\u7f16\u7a0b\u57fa\u7840\", \"4-5 correct: CCC J30s\": \"\u7b54\u5bf9 4-5 \u9898\uff1aCCC \u521d\u7ea730\u5206\", \"6 correct: CCC J60s\": \"\u7b54\u5bf9 6 \u9898\uff1aCCC \u521d\u7ea760\u5206\", \"7 correct: CCC J75s\": \"\u7b54\u5bf9 7 \u9898\uff1aCCC \u521d\u7ea7\u6ee1\u5206\", \"8 correct: CCC S45s readiness\": \"\u7b54\u5bf9 8 \u9898\uff1a\u5177\u5907 CCC \u9ad8\u7ea745\u5206\u5b66\u4e60\u51c6\u5907\u5ea6\", \"Part 2: Coding Challenge\": \"\u7b2c\u4e8c\u90e8\u5206\uff1a\u4ee3\u7801\u6311\u6218\", \"Section B: Coding Fundamentals\": \"B \u90e8\u5206\uff1a\u7f16\u7a0b\u57fa\u7840\u4ee3\u7801\u9898\", \"Section C: CCC Similar Problems\": \"C \u90e8\u5206\uff1aCCC \u76f8\u4f3c\u9898\", \"These problems are reviewed with the rubric below. They measure input handling, core logic, output format, and code quality.\": \"\u8fd9\u4e9b\u9898\u76ee\u4f1a\u6309\u7167\u4e0b\u65b9\u8bc4\u5206\u6807\u51c6\u8bc4\u4f30\uff0c\u91cd\u70b9\u770b\u8f93\u5165\u5904\u7406\u3001\u6838\u5fc3\u903b\u8f91\u3001\u8f93\u51fa\u683c\u5f0f\u548c\u4ee3\u7801\u8d28\u91cf\u3002\", \"Sum of Even Numbers\": \"\u5076\u6570\u6c42\u548c\", \"Input n followed by n integers. Output the sum of even values.\": \"\u8f93\u5165 n\uff0c\u7136\u540e\u8f93\u5165 n \u4e2a\u6574\u6570\uff0c\u8f93\u51fa\u5176\u4e2d\u5076\u6570\u7684\u603b\u548c\u3002\", \"Read n, then n integers. Print the sum of all even numbers. Example: 5 and 10 3 20 7 8 -> 38.\": \"\u8bfb\u5165 n\uff0c\u7136\u540e\u8bfb\u5165 n \u4e2a\u6574\u6570\uff0c\u8f93\u51fa\u6240\u6709\u5076\u6570\u7684\u603b\u548c\u3002\u4f8b\u5982\uff1a5 \u548c 10 3 20 7 8 -> 38\u3002\", \"Write a program that reads an integer n, then reads n integers. Print the sum of all even numbers. Example input: 5 \/ 3 \/ 8 \/ 10 \/ 7 \/ 2. Example output: 20.\": \"\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u8bfb\u5165\u4e00\u4e2a\u6574\u6570 n\uff0c\u7136\u540e\u8bfb\u5165 n \u4e2a\u6574\u6570\u3002\u8f93\u51fa\u6240\u6709\u5076\u6570\u7684\u603b\u548c\u3002\u793a\u4f8b\u8f93\u5165\uff1a5 \/ 3 \/ 8 \/ 10 \/ 7 \/ 2\u3002\u793a\u4f8b\u8f93\u51fa\uff1a20\u3002\", \"Write a program that reads an integer n, then reads n integers. Print the sum of all even numbers. Write a program that reads an integer n, then reads n integers. Print the sum of all even numbers. Example input: 5 \/ 3 \/ 8 \/ 10 \/ 7 \/ 2. Example output: 20.\": \"\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u8bfb\u5165\u4e00\u4e2a\u6574\u6570 n\uff0c\u7136\u540e\u8bfb\u5165 n \u4e2a\u6574\u6570\u3002\u8f93\u51fa\u6240\u6709\u5076\u6570\u7684\u603b\u548c\u3002\u8f93\u5165\uff1an\uff0c\u7136\u540e\u8f93\u5165 n \u4e2a\u6574\u6570\u3002\u8f93\u51fa\uff1a\u6240\u6709\u5076\u6570\u7684\u603b\u548c\u3002\u793a\u4f8b\u8f93\u5165\uff1a5 \/ 10 3 20 7 8\u3002\u793a\u4f8b\u8f93\u51fa\uff1a38\u3002\", \"Count Vowels\": \"\u7edf\u8ba1\u5143\u97f3\", \"Implement count_vowels(s).\": \"\u5b9e\u73b0 count_vowels(s)\u3002\", \"Write count_vowels(s). Count a, e, i, o, u in both uppercase and lowercase letters.\": \"\u7f16\u5199 count_vowels(s)\uff0c\u7edf\u8ba1 a\u3001e\u3001i\u3001o\u3001u\uff0c\u5305\u62ec\u5927\u5c0f\u5199\u3002\", \"Write a program that reads one string. Count how many vowels it contains, including a, e, i, o, and u, without caring about uppercase or lowercase letters. Input: one string. Output: the number of vowels. Example input: Hello World. Example output: 3.\": \"\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u8bfb\u5165\u4e00\u4e2a\u5b57\u7b26\u4e32\u3002\u7edf\u8ba1\u5176\u4e2d\u5305\u542b\u591a\u5c11\u4e2a\u5143\u97f3\u5b57\u6bcd\uff0c\u5305\u62ec a\u3001e\u3001i\u3001o\u3001u\uff0c\u4e0d\u533a\u5206\u5927\u5c0f\u5199\u3002\u8f93\u5165\uff1a\u4e00\u4e2a\u5b57\u7b26\u4e32\u3002\u8f93\u51fa\uff1a\u5143\u97f3\u6570\u91cf\u3002\u793a\u4f8b\u8f93\u5165\uff1aHello World\u3002\u793a\u4f8b\u8f93\u51fa\uff1a3\u3002\", \"Write a function count_vowels(s). The function returns the number of vowels in the string. Vowels are a, e, i, o, u, both uppercase and lowercase. Example: count_vowels(\\\"Hello World\\\"). Output: 3.\": \"\u7f16\u5199\u51fd\u6570 count_vowels(s)\u3002\u8be5\u51fd\u6570\u8fd4\u56de\u5b57\u7b26\u4e32\u4e2d\u7684\u5143\u97f3\u6570\u91cf\u3002\u5143\u97f3\u5305\u62ec a\u3001e\u3001i\u3001o\u3001u\uff0c\u5305\u542b\u5927\u5c0f\u5199\u3002\u793a\u4f8b\uff1acount_vowels(\\\"Hello World\\\")\u3002\u8f93\u51fa\uff1a3\u3002\", \"Write a function count_vowels(s). The function returns the number of vowels in the string. Vowels are a, e, i, o, u, both uppercase and lowercase. Example: count_vowels('Hello World'). Output: 3.\": \"\u7f16\u5199\u51fd\u6570 count_vowels(s)\u3002\u8be5\u51fd\u6570\u8fd4\u56de\u5b57\u7b26\u4e32\u4e2d\u7684\u5143\u97f3\u6570\u91cf\u3002\u5143\u97f3\u5305\u62ec a\u3001e\u3001i\u3001o\u3001u\uff0c\u5305\u542b\u5927\u5c0f\u5199\u3002\u793a\u4f8b\uff1acount_vowels('Hello World')\u3002\u8f93\u51fa\uff1a3\u3002\", \"Maximum Difference\": \"\u6700\u5927\u5dee\u503c\", \"Output max(list) - min(list).\": \"\u8f93\u51fa max(list) - min(list)\u3002\", \"Read a list of integers and print the difference between the largest and smallest value.\": \"\u8bfb\u5165\u4e00\u7ec4\u6574\u6570\uff0c\u8f93\u51fa\u6700\u5927\u503c\u548c\u6700\u5c0f\u503c\u4e4b\u95f4\u7684\u5dee\u3002\", \"Write a program that reads an integer n, then reads n integers. Print the difference between the largest and smallest value. Input: n, then n integers. Output: largest value minus smallest value. Example input: 5 \/ 6 20 15 7 9. Example output: 13.\": \"\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u8bfb\u5165\u4e00\u4e2a\u6574\u6570 n\uff0c\u7136\u540e\u8bfb\u5165 n \u4e2a\u6574\u6570\u3002\u8f93\u51fa\u6700\u5927\u503c\u548c\u6700\u5c0f\u503c\u4e4b\u95f4\u7684\u5dee\u3002\u8f93\u5165\uff1an\uff0c\u7136\u540e\u8f93\u5165 n \u4e2a\u6574\u6570\u3002\u8f93\u51fa\uff1a\u6700\u5927\u503c\u51cf\u6700\u5c0f\u503c\u3002\u793a\u4f8b\u8f93\u5165\uff1a5 \/ 6 20 15 7 9\u3002\u793a\u4f8b\u8f93\u51fa\uff1a13\u3002\", \"Read an integer n, then read n integers into a list. Print the difference between the largest and smallest number. Example input: 6 \/ 10 \/ 3 \/ 8 \/ 20 \/ 15 \/ 7. Example output: 17.\": \"\u8bfb\u5165\u4e00\u4e2a\u6574\u6570 n\uff0c\u7136\u540e\u8bfb\u5165 n \u4e2a\u6574\u6570\u5230\u5217\u8868\u4e2d\u3002\u8f93\u51fa\u6700\u5927\u6570\u548c\u6700\u5c0f\u6570\u4e4b\u95f4\u7684\u5dee\u3002\u793a\u4f8b\u8f93\u5165\uff1a6 \/ 10 \/ 3 \/ 8 \/ 20 \/ 15 \/ 7\u3002\u793a\u4f8b\u8f93\u51fa\uff1a17\u3002\", \"Write a program that reads an integer n, then reads n integers. Print the difference between the largest and smallest value. Write a program that reads an integer n, then reads n integers. Print the difference between the largest and smallest value. Input: n, then n integers. Output: largest value minus smallest value. Example input: 5 \/ 6 20 15 7 9. Example output: 13.\": \"\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u8bfb\u5165\u4e00\u4e2a\u6574\u6570 n\uff0c\u7136\u540e\u8bfb\u5165 n \u4e2a\u6574\u6570\u3002\u8f93\u51fa\u6700\u5927\u503c\u548c\u6700\u5c0f\u503c\u4e4b\u95f4\u7684\u5dee\u3002\u8f93\u5165\uff1an\uff0c\u7136\u540e\u8f93\u5165 n \u4e2a\u6574\u6570\u3002\u8f93\u51fa\uff1a\u6700\u5927\u503c\u51cf\u6700\u5c0f\u503c\u3002\u793a\u4f8b\u8f93\u5165\uff1a5 \/ 6 20 15 7 9\u3002\u793a\u4f8b\u8f93\u51fa\uff1a13\u3002\", \"Health Simulation\": \"\u751f\u547d\u503c\u6a21\u62df\", \"Simple Simulation\": \"\u7b80\u5355\u6a21\u62df\", \"Start at 100 HP. hit = -10, heal = +5, miss = 0. Clamp the result to 0..100.\": \"\u521d\u59cb 100 HP\u3002hit = -10\uff0cheal = +5\uff0cmiss = 0\u3002\u7ed3\u679c\u9650\u5236\u5728 0..100\u3002\", \"Start at 100 health. For each event: hit decreases by 10, heal increases by 5, miss changes nothing. Keep health between 0 and 100.\": \"\u521d\u59cb\u751f\u547d\u503c\u4e3a 100\u3002\u6bcf\u4e2a\u4e8b\u4ef6\u4e2d\uff1ahit \u51cf\u5c11 10\uff0cheal \u589e\u52a0 5\uff0cmiss \u4e0d\u53d8\u3002\u751f\u547d\u503c\u4fdd\u6301\u5728 0 \u5230 100 \u4e4b\u95f4\u3002\", \"Write a program that simulates a player's health. Read a starting health value and a sequence of events. A hit subtracts 10, a heal adds 5, and a miss changes nothing. Keep the final health between 0 and 100. Input: starting health and events. Output: final health.\": \"\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u6a21\u62df\u73a9\u5bb6\u7684\u751f\u547d\u503c\u3002\u8bfb\u5165\u521d\u59cb\u751f\u547d\u503c\u548c\u4e00\u4e32\u4e8b\u4ef6\u3002hit \u51cf\u5c11 10\uff0cheal \u589e\u52a0 5\uff0cmiss \u4e0d\u6539\u53d8\u751f\u547d\u503c\u3002\u6700\u7ec8\u751f\u547d\u503c\u9700\u8981\u4fdd\u6301\u5728 0 \u5230 100 \u4e4b\u95f4\u3002\u8f93\u5165\uff1a\u521d\u59cb\u751f\u547d\u503c\u548c\u4e8b\u4ef6\u3002\u8f93\u51fa\uff1a\u6700\u7ec8\u751f\u547d\u503c\u3002\", \"A player starts with 100 health points. Read an integer n, then read n actions. Each action is hit, heal, or miss. hit decreases health by 10, heal increases health by 5, and miss does not change health. Health cannot go below 0 or above 100. Print the final health. Example input: 5 \/ hit \/ hit \/ heal \/ miss \/ hit. Example output: 75.\": \"\u73a9\u5bb6\u521d\u59cb\u6709 100 \u70b9\u751f\u547d\u503c\u3002\u8bfb\u5165\u4e00\u4e2a\u6574\u6570 n\uff0c\u7136\u540e\u8bfb\u5165 n \u4e2a\u52a8\u4f5c\u3002\u6bcf\u4e2a\u52a8\u4f5c\u662f hit\u3001heal \u6216 miss\u3002hit \u8ba9\u751f\u547d\u503c\u51cf\u5c11 10\uff0cheal \u8ba9\u751f\u547d\u503c\u589e\u52a0 5\uff0cmiss \u4e0d\u6539\u53d8\u751f\u547d\u503c\u3002\u751f\u547d\u503c\u4e0d\u80fd\u4f4e\u4e8e 0\uff0c\u4e5f\u4e0d\u80fd\u9ad8\u4e8e 100\u3002\u8f93\u51fa\u6700\u7ec8\u751f\u547d\u503c\u3002\u793a\u4f8b\u8f93\u5165\uff1a5 \/ hit \/ hit \/ heal \/ miss \/ hit\u3002\u793a\u4f8b\u8f93\u51fa\uff1a75\u3002\", \"Pizza Party\": \"\u62ab\u8428\u6d3e\u5bf9\", \"Pizza Party (J2)\": \"\u62ab\u8428\u6d3e\u5bf9\uff08J2\uff09\", \"Determine whether there are enough slices for all students.\": \"\u5224\u65ad\u62ab\u8428\u662f\u5426\u8db3\u591f\u5206\u7ed9\u6240\u6709\u5b66\u751f\u3002\", \"Given the number of pizzas, slices per pizza, and students, print Enough if every student can get a slice; otherwise print Not enough.\": \"\u7ed9\u5b9a\u62ab\u8428\u6570\u91cf\u3001\u6bcf\u4e2a\u62ab\u8428\u7684\u5207\u7247\u6570\u548c\u5b66\u751f\u4eba\u6570\uff0c\u5982\u679c\u6bcf\u4f4d\u5b66\u751f\u90fd\u80fd\u5206\u5230\u4e00\u7247\u5219\u8f93\u51fa Enough\uff0c\u5426\u5219\u8f93\u51fa Not enough\u3002\", \"Write a program that reads the number of pizzas, the number of slices per pizza, and the number of students. Print Enough if every student can get at least one slice; otherwise print Not enough. Example: 2 pizzas, 6 slices each, 10 students -> Enough.\": \"\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u8bfb\u5165\u62ab\u8428\u6570\u91cf\u3001\u6bcf\u4e2a\u62ab\u8428\u7684\u5207\u7247\u6570\u548c\u5b66\u751f\u4eba\u6570\u3002\u5982\u679c\u6bcf\u4f4d\u5b66\u751f\u81f3\u5c11\u80fd\u5206\u5230\u4e00\u7247\uff0c\u5219\u8f93\u51fa Enough\uff1b\u5426\u5219\u8f93\u51fa Not enough\u3002\u793a\u4f8b\uff1a2 \u4e2a\u62ab\u8428\uff0c\u6bcf\u4e2a 6 \u7247\uff0c10 \u4e2a\u5b66\u751f -> Enough\u3002\", \"A school is running a pizza party. Each small pizza has 6 slices, and each large pizza has 10 slices. Read the number of small pizzas, the number of large pizzas, and the number of students. Each student needs exactly 2 slices. Print Enough if there are enough slices; otherwise print Not enough. Example input: 3 \/ 2 \/ 20. Example output: Not enough.\": \"\u5b66\u6821\u6b63\u5728\u4e3e\u529e\u62ab\u8428\u6d3e\u5bf9\u3002\u6bcf\u4e2a\u5c0f\u62ab\u8428\u6709 6 \u7247\uff0c\u6bcf\u4e2a\u5927\u62ab\u8428\u6709 10 \u7247\u3002\u8bfb\u5165\u5c0f\u62ab\u8428\u6570\u91cf\u3001\u5927\u62ab\u8428\u6570\u91cf\u548c\u5b66\u751f\u4eba\u6570\u3002\u6bcf\u4f4d\u5b66\u751f\u6b63\u597d\u9700\u8981 2 \u7247\u3002\u5982\u679c\u62ab\u8428\u7247\u8db3\u591f\uff0c\u5219\u8f93\u51fa Enough\uff1b\u5426\u5219\u8f93\u51fa Not enough\u3002\u793a\u4f8b\u8f93\u5165\uff1a3 \/ 2 \/ 20\u3002\u793a\u4f8b\u8f93\u51fa\uff1aNot enough\u3002\", \"Balanced Word\": \"\u5e73\u8861\u5355\u8bcd\", \"Balanced Word (J3)\": \"\u5e73\u8861\u5355\u8bcd\uff08J3\uff09\", \"Check whether vowels and consonants are equal.\": \"\u5224\u65ad\u5143\u97f3\u548c\u8f85\u97f3\u6570\u91cf\u662f\u5426\u76f8\u7b49\u3002\", \"A word is balanced if its vowel count equals its consonant count. Only lowercase letters are included.\": \"\u5982\u679c\u4e00\u4e2a\u5355\u8bcd\u4e2d\u7684\u5143\u97f3\u6570\u91cf\u7b49\u4e8e\u8f85\u97f3\u6570\u91cf\uff0c\u5219\u5b83\u662f\u5e73\u8861\u5355\u8bcd\u3002\u53ea\u5305\u542b\u5c0f\u5199\u5b57\u6bcd\u3002\", \"Write a program that reads one lowercase word. Count vowels and consonants. Print Balanced if the two counts are equal; otherwise print Not balanced. Example input: banana. Example output: Balanced.\": \"\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u8bfb\u5165\u4e00\u4e2a\u5c0f\u5199\u5355\u8bcd\u3002\u7edf\u8ba1\u5143\u97f3\u548c\u8f85\u97f3\u6570\u91cf\u3002\u5982\u679c\u4e24\u8005\u6570\u91cf\u76f8\u7b49\uff0c\u5219\u8f93\u51fa Balanced\uff1b\u5426\u5219\u8f93\u51fa Not balanced\u3002\u793a\u4f8b\u8f93\u5165\uff1abanana\u3002\u793a\u4f8b\u8f93\u51fa\uff1aBalanced\u3002\", \"A word is called balanced if the number of vowels equals the number of consonants. Read one lowercase word. Only letters are included. Print Balanced or Not balanced. Example input: banana. Example output: Balanced. Explanation: vowels = 3, consonants = 3.\": \"\u5982\u679c\u4e00\u4e2a\u5355\u8bcd\u4e2d\u7684\u5143\u97f3\u6570\u91cf\u7b49\u4e8e\u8f85\u97f3\u6570\u91cf\uff0c\u5219\u79f0\u4e3a balanced\u3002\u8bfb\u5165\u4e00\u4e2a\u5c0f\u5199\u5355\u8bcd\uff0c\u53ea\u5305\u542b\u5b57\u6bcd\u3002\u8f93\u51fa Balanced \u6216 Not balanced\u3002\u793a\u4f8b\u8f93\u5165\uff1abanana\u3002\u793a\u4f8b\u8f93\u51fa\uff1aBalanced\u3002\u89e3\u91ca\uff1a\u5143\u97f3 = 3\uff0c\u8f85\u97f3 = 3\u3002\", \"String Compression\": \"\u5b57\u7b26\u4e32\u538b\u7f29\", \"String Compression (J4)\": \"\u5b57\u7b26\u4e32\u538b\u7f29\uff08J4\uff09\", \"Compress aaabbcdddd as a3b2c1d4.\": \"\u5c06 aaabbcdddd \u538b\u7f29\u4e3a a3b2c1d4\u3002\", \"Compress consecutive repeated characters, such as aaabbcdddd -> a3b2c1d4.\": \"\u538b\u7f29\u8fde\u7eed\u91cd\u590d\u5b57\u7b26\uff0c\u4f8b\u5982 aaabbcdddd -> a3b2c1d4\u3002\", \"Write a program that reads one string and compresses consecutive repeated characters. For each group, print the character followed by its count. Example input: aaabbcdddd. Example output: a3b2c1d4.\": \"\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u8bfb\u5165\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u5e76\u538b\u7f29\u8fde\u7eed\u91cd\u590d\u5b57\u7b26\u3002\u5bf9\u6bcf\u4e00\u7ec4\u8fde\u7eed\u5b57\u7b26\uff0c\u8f93\u51fa\u8be5\u5b57\u7b26\u548c\u51fa\u73b0\u6b21\u6570\u3002\u793a\u4f8b\u8f93\u5165\uff1aaaabbcdddd\u3002\u793a\u4f8b\u8f93\u51fa\uff1aa3b2c1d4\u3002\", \"Read a string and compress consecutive repeated characters. For each group, print the character followed by its count. Example input: aaabbcdddd. Example output: a3b2c1d4. Another example input: abcd. Another example output: a1b1c1d1.\": \"\u8bfb\u5165\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u5e76\u538b\u7f29\u8fde\u7eed\u91cd\u590d\u5b57\u7b26\u3002\u5bf9\u6bcf\u4e00\u7ec4\u8fde\u7eed\u5b57\u7b26\uff0c\u8f93\u51fa\u8be5\u5b57\u7b26\u548c\u51fa\u73b0\u6b21\u6570\u3002\u793a\u4f8b\u8f93\u5165\uff1aaaabbcdddd\u3002\u793a\u4f8b\u8f93\u51fa\uff1aa3b2c1d4\u3002\u53e6\u4e00\u4e2a\u793a\u4f8b\u8f93\u5165\uff1aabcd\u3002\u53e6\u4e00\u4e2a\u793a\u4f8b\u8f93\u51fa\uff1aa1b1c1d1\u3002\", \"Pair Sum Equals 10\": \"\u4e24\u6570\u548c\u4e3a 10\", \"Pair Sum Equals 10 (J5 readiness)\": \"\u4e24\u6570\u548c\u4e3a 10\uff08J5 \u51c6\u5907\u5ea6\uff09\", \"Count non-overlapping pairs whose sum is 10.\": \"\u7edf\u8ba1\u4e0d\u91cd\u53e0\u4e14\u548c\u4e3a 10 \u7684\u914d\u5bf9\u6570\u91cf\u3002\", \"Count non-overlapping pairs whose values sum to 10. Each number can be used at most once.\": \"\u7edf\u8ba1\u6570\u503c\u548c\u4e3a 10 \u7684\u4e0d\u91cd\u53e0\u914d\u5bf9\uff0c\u6bcf\u4e2a\u6570\u5b57\u6700\u591a\u53ea\u80fd\u4f7f\u7528\u4e00\u6b21\u3002\", \"Write a program that reads a list of numbers. Count how many non-overlapping pairs have a sum of 10. Each number can be used at most once. Example input: 1 9 5 5 7 3. Example output: 3.\": \"\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u8bfb\u5165\u4e00\u7ec4\u6570\u5b57\u3002\u7edf\u8ba1\u6709\u591a\u5c11\u4e2a\u4e0d\u91cd\u53e0\u7684\u914d\u5bf9\u4e4b\u548c\u4e3a 10\uff0c\u6bcf\u4e2a\u6570\u5b57\u6700\u591a\u53ea\u80fd\u4f7f\u7528\u4e00\u6b21\u3002\u793a\u4f8b\u8f93\u5165\uff1a1 9 5 5 7 3\u3002\u793a\u4f8b\u8f93\u51fa\uff1a3\u3002\", \"You are given n numbers. Count how many non-overlapping pairs have a sum equal to 10. Each number can be used only once per pair. Example input: 6 \/ 1 \/ 9 \/ 5 \/ 5 \/ 7 \/ 3. Example output: 3. Pairs: 1 + 9, 5 + 5, 7 + 3.\": \"\u7ed9\u5b9a n \u4e2a\u6570\u5b57\u3002\u7edf\u8ba1\u6709\u591a\u5c11\u4e2a\u4e0d\u91cd\u53e0\u7684\u914d\u5bf9\u4e4b\u548c\u7b49\u4e8e 10\u3002\u6bcf\u4e2a\u6570\u5b57\u5728\u914d\u5bf9\u4e2d\u53ea\u80fd\u4f7f\u7528\u4e00\u6b21\u3002\u793a\u4f8b\u8f93\u5165\uff1a6 \/ 1 \/ 9 \/ 5 \/ 5 \/ 7 \/ 3\u3002\u793a\u4f8b\u8f93\u51fa\uff1a3\u3002\u914d\u5bf9\uff1a1 + 9\uff0c5 + 5\uff0c7 + 3\u3002\", \"Coding Rubric\": \"\u4ee3\u7801\u9898\u8bc4\u5206\u6807\u51c6\", \"Input Handling: 20%\": \"\u8f93\u5165\u5904\u7406\uff1a20%\", \"Core Logic: 50%\": \"\u6838\u5fc3\u903b\u8f91\uff1a50%\", \"Output Format: 20%\": \"\u8f93\u51fa\u683c\u5f0f\uff1a20%\", \"Code Quality: 10%\": \"\u4ee3\u7801\u8d28\u91cf\uff1a10%\", \"Complete the embedded OneCompiler challenge to test implementation ability in a realistic coding environment.\": \"\u5b8c\u6210\u5d4c\u5165\u7684 OneCompiler \u6311\u6218\uff0c\u5728\u771f\u5b9e\u4ee3\u7801\u73af\u5883\u4e2d\u6d4b\u8bd5\u5b9e\u73b0\u80fd\u529b\u3002\", \"Use the embedded Python editor below to solve Section B and Section C problems. You can write and run code directly in the browser.\": \"\u4f7f\u7528\u4e0b\u65b9\u5d4c\u5165\u7684 Python \u7f16\u8f91\u5668\u5b8c\u6210 B \u90e8\u5206\u548c C \u90e8\u5206\u9898\u76ee\u3002\u4f60\u53ef\u4ee5\u76f4\u63a5\u5728\u6d4f\u89c8\u5668\u4e2d\u7f16\u5199\u5e76\u8fd0\u884c\u4ee3\u7801\u3002\", \"Online Coding\": \"\u5728\u7ebf\u7f16\u7a0b\", \"How to read your result\": \"\u5982\u4f55\u7406\u89e3\u7ed3\u679c\", \"0-40: Foundation Programming\": \"0-40\uff1a\u7f16\u7a0b\u57fa\u7840\", \"41-60: CCC J30s\": \"41-60\uff1aCCC \u521d\u7ea730\u5206\", \"41-60: CCC \u521d\u7ea730\u5206\": \"41-60\uff1aCCC \u521d\u7ea730\u5206\", \"61-75: CCC J60s\": \"61-75\uff1aCCC \u521d\u7ea760\u5206\", \"61-75: CCC \u521d\u7ea760\u5206\": \"61-75\uff1aCCC \u521d\u7ea760\u5206\", \"76-90: CCC J75s\": \"76-90\uff1aCCC \u521d\u7ea7\u6ee1\u5206\", \"76-90: CCC \u521d\u7ea7\u6ee1\u5206\": \"76-90\uff1aCCC \u521d\u7ea7\u6ee1\u5206\", \"91+: CCC S45s readiness\": \"91+\uff1a\u5177\u5907 CCC \u9ad8\u7ea745\u5206\u5b66\u4e60\u51c6\u5907\u5ea6\", \"91+: CCC \u9ad8\u7ea745\u5206 readiness\": \"91+\uff1a\u5177\u5907 CCC \u9ad8\u7ea745\u5206\u5b66\u4e60\u51c6\u5907\u5ea6\", \"0-30: Beginner Python\": \"0-30\uff1aPython \u5165\u95e8\", \"31-50: Python Foundations\": \"31-50\uff1aPython \u57fa\u7840\", \"51-70: CCC Junior J1-J2 Ready\": \"51-70\uff1a\u9002\u5408 CCC \u521d\u7ea7 J1-J2\", \"71-85: CCC Junior J3-J4 Ready\": \"71-85\uff1a\u9002\u5408 CCC \u521d\u7ea7 J3-J4\", \"86-100: CCC Junior J5 Ready \/ Advanced\": \"86-100\uff1a\u9002\u5408 CCC \u521d\u7ea7 J5 \/ \u8fdb\u9636\u5b66\u4e60\", \"Check Section A Score\": \"\u67e5\u770b A \u90e8\u5206\u5206\u6570\", \"Book a Placement Consultation\": \"\u9884\u7ea6\u5206\u7ea7\u54a8\u8be2\", \"Multiple choice\": \"\u9009\u62e9\u9898\", \"+ coding task\": \"+ \u4ee3\u7801\u9898\", \"Get a practical signal before choosing a learning path.\": \"\u5728\u9009\u62e9\u5b66\u4e60\u8def\u5f84\u524d\uff0c\u83b7\u5f97\u4e00\u4e2a\u5b9e\u7528\u7684\u80fd\u529b\u53c2\u8003\u3002\", \"Implementation\": \"\u4ee3\u7801\u5b9e\u73b0\", \"Placement Guide\": \"\u5206\u7ea7\u5efa\u8bae\", \"What index does the first item in a Python list have?\": \"Python \u5217\u8868\u4e2d\u7b2c\u4e00\u4e2a\u5143\u7d20\u7684\u7d22\u5f15\u662f\u591a\u5c11\uff1f\", \"What values are produced by range(3)?\": \"range(3) \u4f1a\u4ea7\u751f\u54ea\u4e9b\u503c\uff1f\", \"Which tool is most appropriate for repeating an action a known number of times?\": \"\u5f53\u9700\u8981\u91cd\u590d\u6267\u884c\u5df2\u77e5\u6b21\u6570\u7684\u64cd\u4f5c\u65f6\uff0c\u6700\u5408\u9002\u7684\u5de5\u5177\u662f\u4ec0\u4e48\uff1f\", \"What does n % 2 == 0 usually test?\": \"n % 2 == 0 \u901a\u5e38\u7528\u4e8e\u5224\u65ad\u4ec0\u4e48\uff1f\", \"Which data structure stores ordered, mutable values?\": \"\u54ea\u79cd\u6570\u636e\u7ed3\u6784\u53ef\u4ee5\u5b58\u50a8\u6709\u5e8f\u4e14\u53ef\u4fee\u6539\u7684\u6570\u636e\uff1f\", \"If you scan a list once from left to right, what is the usual time complexity?\": \"\u5982\u679c\u4ece\u5de6\u5230\u53f3\u626b\u63cf\u4e00\u4e2a\u5217\u8868\u4e00\u6b21\uff0c\u901a\u5e38\u7684\u65f6\u95f4\u590d\u6742\u5ea6\u662f\u591a\u5c11\uff1f\", \"For s = 'abc', what is s[1]?\": \"\u5bf9\u4e8e s = 'abc'\uff0cs[1] \u662f\u4ec0\u4e48\uff1f\", \"Which structure is usually best for counting frequencies?\": \"\u7edf\u8ba1\u51fa\u73b0\u9891\u7387\u65f6\u901a\u5e38\u6700\u9002\u5408\u4f7f\u7528\u54ea\u79cd\u7ed3\u6784\uff1f\", \"A dictionary\": \"\u5b57\u5178\", \"A list\": \"\u5217\u8868\", \"A function\": \"\u51fd\u6570\", \"An if statement\": \"if \u8bed\u53e5\", \"A while loop only\": \"\u53ea\u80fd\u4f7f\u7528 while \u5faa\u73af\", \"A for loop\": \"for \u5faa\u73af\", \"Whether n is even\": \"n \u662f\u5426\u4e3a\u5076\u6570\", \"Whether n is negative\": \"n \u662f\u5426\u4e3a\u8d1f\u6570\", \"Whether n is a string\": \"n \u662f\u5426\u4e3a\u5b57\u7b26\u4e32\", \"Modern Software Teams\": \"\u9762\u5411\u73b0\u4ee3\u8f6f\u4ef6\u56e2\u961f\", \"Practical Technology Consulting\": \"\u5b9e\u7528\u578b\u6280\u672f\u54a8\u8be2\", \"Independent guidance for software architecture, product delivery, and AI adoption decisions.\": \"\u4e3a\u8f6f\u4ef6\u67b6\u6784\u3001\u4ea7\u54c1\u4ea4\u4ed8\u548c AI \u91c7\u7528\u51b3\u7b56\u63d0\u4f9b\u72ec\u7acb\u5efa\u8bae\u3002\", \"Discuss a Project\": \"\u8ba8\u8bba\u9879\u76ee\", \"20+ years\": \"20+ \u5e74\", \"Software engineering, architecture, teaching, and advisory experience.\": \"\u8f6f\u4ef6\u5de5\u7a0b\u3001\u67b6\u6784\u3001\u6559\u5b66\u4e0e\u54a8\u8be2\u7ecf\u9a8c\u3002\", \"Consulting Services\": \"\u54a8\u8be2\u670d\u52a1\", \"Focused guidance for technical decisions that matter.\": \"\u56f4\u7ed5\u5173\u952e\u6280\u672f\u51b3\u7b56\u63d0\u4f9b\u805a\u7126\u3001\u52a1\u5b9e\u7684\u6307\u5bfc\u3002\", \".NET Solution Consulting\": \".NET \u89e3\u51b3\u65b9\u6848\u54a8\u8be2\", \"ASP.NET Core, Web API, microservices, Azure, and enterprise systems.\": \"ASP.NET Core\u3001Web API\u3001\u5fae\u670d\u52a1\u3001Azure \u4e0e\u4f01\u4e1a\u7cfb\u7edf\u3002\", \"ASP.NET Core, Web API, microservices, Azure, enterprise systems.\": \"ASP.NET Core\u3001Web API\u3001\u5fae\u670d\u52a1\u3001Azure\u3001\u4f01\u4e1a\u7cfb\u7edf\u3002\", \"React Solution Consulting\": \"React \u89e3\u51b3\u65b9\u6848\u54a8\u8be2\", \"React, TypeScript, state management, performance optimization, and front-end architecture.\": \"React\u3001TypeScript\u3001\u72b6\u6001\u7ba1\u7406\u3001\u6027\u80fd\u4f18\u5316\u4e0e\u524d\u7aef\u67b6\u6784\u3002\", \"React, TypeScript, state management, performance, front-end architecture.\": \"React\u3001TypeScript\u3001\u72b6\u6001\u7ba1\u7406\u3001\u6027\u80fd\u4e0e\u524d\u7aef\u67b6\u6784\u3002\", \"Software Architecture Review\": \"\u8f6f\u4ef6\u67b6\u6784\u8bc4\u5ba1\", \"Scalability, maintainability, system design, and technical risk assessment.\": \"\u53ef\u6269\u5c55\u6027\u3001\u53ef\u7ef4\u62a4\u6027\u3001\u7cfb\u7edf\u8bbe\u8ba1\u4e0e\u6280\u672f\u98ce\u9669\u8bc4\u4f30\u3002\", \"AI Adoption Consulting\": \"AI \u5e94\u7528\u54a8\u8be2\", \"AI evaluation, integration, business process automation, and AI strategy.\": \"AI \u8bc4\u4f30\u3001\u96c6\u6210\u3001\u4e1a\u52a1\u6d41\u7a0b\u81ea\u52a8\u5316\u4e0e AI \u7b56\u7565\u3002\", \"Technical Project Advisory\": \"\u6280\u672f\u9879\u76ee\u987e\u95ee\", \"Independent technology guidance for small businesses, startups, and technology teams.\": \"\u4e3a\u5c0f\u578b\u4f01\u4e1a\u3001\u521b\u4e1a\u56e2\u961f\u548c\u6280\u672f\u56e2\u961f\u63d0\u4f9b\u72ec\u7acb\u6280\u672f\u5efa\u8bae\u3002\", \"How Engagements Work\": \"\u5408\u4f5c\u65b9\u5f0f\", \"Clear, practical, and implementation-aware.\": \"\u6e05\u6670\u3001\u52a1\u5b9e\uff0c\u5e76\u5173\u6ce8\u5b9e\u9645\u843d\u5730\u3002\", \"Assess\": \"\u8bc4\u4f30\", \"Understand product goals, current architecture, risks, and constraints.\": \"\u7406\u89e3\u4ea7\u54c1\u76ee\u6807\u3001\u5f53\u524d\u67b6\u6784\u3001\u98ce\u9669\u4e0e\u7ea6\u675f\u3002\", \"Recommend\": \"\u5efa\u8bae\", \"Prioritize decisions with clear tradeoffs and implementation paths.\": \"\u660e\u786e\u53d6\u820d\u4e0e\u5b9e\u65bd\u8def\u5f84\uff0c\u5e2e\u52a9\u786e\u5b9a\u51b3\u7b56\u4f18\u5148\u7ea7\u3002\", \"Support\": \"\u652f\u6301\", \"Guide teams through delivery, review, and adoption.\": \"\u652f\u6301\u56e2\u961f\u5b8c\u6210\u4ea4\u4ed8\u3001\u8bc4\u5ba1\u4e0e\u6280\u672f\u91c7\u7528\u3002\", \"Founded in 2018\": \"\u521b\u7acb\u4e8e 2018 \u5e74\", \"Learn to Think, Build, and Lead.\": \"\u5b66\u4f1a\u601d\u8003\u3001\u6784\u5efa\u4e0e\u5f15\u9886\u3002\", \"LearntoThink,Build,andLead.\": \"\u5b66\u4f1a\u601d\u8003\u3001\u6784\u5efa\u4e0e\u5f15\u9886\u3002\", \"Learn to Think,\": \"\u5b66\u4f1a\u601d\u8003\uff0c\", \"Build,\": \"\u6784\u5efa\uff0c\", \"and Lead.\": \"\u5e76\u5f15\u9886\u3002\", \"Technology education and practical engineering expertise.\": \"\u79d1\u6280\u6559\u80b2\u4e0e\u5b9e\u7528\u5de5\u7a0b\u7ecf\u9a8c\u3002\", \"Accel Thinking empowers organizations and learners through technology education and practical engineering expertise.\": \"\u52a0\u901f\u5ea6\u601d\u7ef4\u901a\u8fc7\u79d1\u6280\u6559\u80b2\u548c\u5b9e\u7528\u5de5\u7a0b\u7ecf\u9a8c\u8d4b\u80fd\u7ec4\u7ec7\u4e0e\u5b66\u4e60\u8005\u3002\", \"Founded in 2018, Accel Thinking empowers organizations and learners through technology education and practical engineering expertise.\": \"\u52a0\u901f\u5ea6\u601d\u7ef4\u521b\u7acb\u4e8e 2018 \u5e74\uff0c\u901a\u8fc7\u79d1\u6280\u6559\u80b2\u548c\u5b9e\u7528\u5de5\u7a0b\u7ecf\u9a8c\u8d4b\u80fd\u7ec4\u7ec7\u4e0e\u5b66\u4e60\u8005\u3002\", \"Company Philosophy\": \"\u516c\u53f8\u7406\u5ff5\", \"We do not simply teach programming.\": \"\u6211\u4eec\u4e0d\u53ea\u662f\u6559\u7f16\u7a0b\u3002\", \"We help students develop problem-solving skills, computational thinking, and engineering mindsets that prepare them for future success.\": \"\u6211\u4eec\u5e2e\u52a9\u5b66\u751f\u53d1\u5c55\u95ee\u9898\u89e3\u51b3\u80fd\u529b\u3001\u8ba1\u7b97\u601d\u7ef4\u548c\u5de5\u7a0b\u5316\u601d\u7ef4\uff0c\u4e3a\u672a\u6765\u6210\u529f\u505a\u597d\u51c6\u5907\u3002\", \"Mission\": \"\u4f7f\u547d\", \"Empower organizations and learners through technology education and practical engineering expertise.\": \"\u901a\u8fc7\u79d1\u6280\u6559\u80b2\u548c\u5b9e\u7528\u5de5\u7a0b\u7ecf\u9a8c\u8d4b\u80fd\u7ec4\u7ec7\u4e0e\u5b66\u4e60\u8005\u3002\", \"Vision\": \"\u613f\u666f\", \"Become a trusted technology education and consulting partner.\": \"\u6210\u4e3a\u503c\u5f97\u4fe1\u8d56\u7684\u79d1\u6280\u6559\u80b2\u4e0e\u6280\u672f\u54a8\u8be2\u4f19\u4f34\u3002\", \"Founder Profile\": \"\u521b\u59cb\u4eba\u7b80\u4ecb\", \"Software Architect, Technology Educator, Curriculum Designer, 20+ years of software engineering experience.\": \"\u8f6f\u4ef6\u67b6\u6784\u5e08\u3001\u79d1\u6280\u6559\u80b2\u8005\u3001\u8bfe\u7a0b\u8bbe\u8ba1\u8005\uff0c\u62e5\u6709 20+ \u5e74\u8f6f\u4ef6\u5de5\u7a0b\u7ecf\u9a8c\u3002\", \"Tell us what you want to build, teach, or improve.\": \"\u544a\u8bc9\u6211\u4eec\u4f60\u60f3\u6784\u5efa\u3001\u5f00\u8bbe\u6216\u6539\u8fdb\u4ec0\u4e48\u3002\", \"Use this page for educational partnership inquiries, CP Academy questions, technology consulting, or general messages.\": \"\u4f60\u53ef\u4ee5\u901a\u8fc7\u672c\u9875\u9762\u54a8\u8be2\u6559\u80b2\u5408\u4f5c\u3001CP \u5b66\u9662\u3001\u6280\u672f\u54a8\u8be2\u6216\u4e00\u822c\u95ee\u9898\u3002\", \"Email info@accelthinking.com\": \"\u53d1\u9001\u90ae\u4ef6\u81f3 info@accelthinking.com\", \"Oakville, Ontario, Canada\": \"\u52a0\u62ff\u5927\u5b89\u5927\u7565\u7701\u5965\u514b\u7ef4\u5c14\", \"First\": \"\u59d3\", \"Last\": \"\u540d\", \"\u524d\u4e00\u9875\": \"\u59d3\", \"\u540e\u4e00\u9875\": \"\u540d\", \"Name\": \"\u59d3\u540d\", \"Email *\": \"\u7535\u5b50\u90ae\u7bb1 *\", \"Comment or Message\": \"\u7559\u8a00\", \"Contact Purpose\": \"\u8054\u7cfb\u76ee\u7684\", \"Submit\": \"\u63d0\u4ea4\", \"Inquiry Types\": \"\u54a8\u8be2\u7c7b\u578b\", \"Route each conversation to the right business goal.\": \"\u8ba9\u6bcf\u4e00\u6b21\u6c9f\u901a\u90fd\u5bf9\u5e94\u5230\u6e05\u6670\u7684\u4e1a\u52a1\u76ee\u6807\u3002\", \"Educational Partnership\": \"\u6559\u80b2\u5408\u4f5c\", \"Programs for learning centers, schools, academies, and community organizations.\": \"\u9762\u5411\u5b66\u4e60\u4e2d\u5fc3\u3001\u5b66\u6821\u3001\u57f9\u8bad\u673a\u6784\u548c\u793e\u533a\u7ec4\u7ec7\u7684\u8bfe\u7a0b\u9879\u76ee\u3002\", \"Competitive programming and CCC preparation for students aged 12-16.\": \"\u9762\u5411 12-16 \u5c81\u5b66\u751f\u7684\u7ade\u8d5b\u7f16\u7a0b\u4e0e CCC \u5907\u8003\u3002\", \"Technology Consulting\": \"\u6280\u672f\u54a8\u8be2\", \".NET, React, architecture review, AI adoption, and project advisory.\": \".NET\u3001React\u3001\u67b6\u6784\u8bc4\u5ba1\u3001AI \u5e94\u7528\u4e0e\u9879\u76ee\u987e\u95ee\u670d\u52a1\u3002\", \"Blog Category\": \"\u535a\u5ba2\u5206\u7c7b\", \"Weekly competitive programming posts for CCC practice, problem solving, and student learning outcomes.\": \"\u6bcf\u5468\u53d1\u5e03\u7ade\u8d5b\u7f16\u7a0b\u6587\u7ae0\uff0c\u652f\u6301 CCC \u7ec3\u4e60\u3001\u95ee\u9898\u89e3\u51b3\u4e0e\u5b66\u751f\u5b66\u4e60\u6210\u679c\u3002\", \"Latest Articles\": \"\u6700\u65b0\u6587\u7ae0\", \"CCC practice articles with structured explanations and implementation notes.\": \"\u5305\u542b\u7ed3\u6784\u5316\u8bb2\u89e3\u548c\u5b9e\u73b0\u8bf4\u660e\u7684 CCC \u7ec3\u4e60\u6587\u7ae0\u3002\", \"Read More ->\": \"\u9605\u8bfb\u5168\u6587 ->\", \"Back to Challenges\": \"\u8fd4\u56de\u6311\u6218\u5217\u8868\", \"Solution Format\": \"\u89e3\u9898\u7ed3\u6784\", \"summary -> concepts -> code -> review\": \"\u6982\u8ff0 -> \u6982\u5ff5 -> \u4ee3\u7801 -> \u590d\u76d8\", \"\u2190 Back to CP Weekly Challenge\": \"\u2190 \u8fd4\u56de CP \u6bcf\u5468\u6311\u6218\", \"CCC 2026 J4 - Snail Path Solution & Analysis\": \"CCC 2026 J4 - Snail Path \u89e3\u9898\u4e0e\u5206\u6790\", \"CCC 2026 J4 \u2013 Snail Path Solution & Analysis\": \"CCC 2026 J4 - Snail Path \u89e3\u9898\u4e0e\u5206\u6790\", \"Simulate the snail step by step, track slimy squares with a visited set, and count every revisit.\": \"\u9010\u6b65\u6a21\u62df\u8717\u725b\u79fb\u52a8\uff0c\u7528 visited set \u8bb0\u5f55\u5df2\u7ecf\u53d8\u9ecf\u7684\u683c\u5b50\uff0c\u5e76\u7edf\u8ba1\u6bcf\u4e00\u6b21\u91cd\u65b0\u8fdb\u5165\u65e7\u683c\u5b50\u7684\u6b21\u6570\u3002\", \"Imagine the snail starts on one grid square. That starting square is already part of its trail, because the problem says the snail makes the squares it touches slimy. In the example \u201cmove east 3 squares\u201d, there are 4 slimy squares total, which includes the starting square.\": \"\u60f3\u8c61\u8717\u725b\u4ece\u4e00\u4e2a\u7f51\u683c\u65b9\u683c\u5f00\u59cb\u3002\u8fd9\u4e2a\u8d77\u59cb\u65b9\u683c\u5df2\u7ecf\u662f\u5b83\u8def\u5f84\u7684\u4e00\u90e8\u5206\uff0c\u56e0\u4e3a\u9898\u76ee\u8bf4\u660e\u8717\u725b\u78b0\u5230\u7684\u65b9\u683c\u4f1a\u53d8\u9ecf\u3002\u5728\u201c\u5411\u4e1c\u79fb\u52a8 3 \u683c\u201d\u7684\u4f8b\u5b50\u4e2d\uff0c\u4e00\u5171\u6709 4 \u4e2a\u9ecf\u9ecf\u7684\u65b9\u683c\uff0c\u5176\u4e2d\u5305\u62ec\u8d77\u59cb\u65b9\u683c\u3002\", \"Understanding the Problem\": \"\u7406\u89e3\u9898\u76ee\", \"Every time the snail moves one square, we check whether the new square was already slimy.\": \"\u6bcf\u5f53\u8717\u725b\u79fb\u52a8\u4e00\u683c\uff0c\u6211\u4eec\u90fd\u68c0\u67e5\u5b83\u5230\u8fbe\u7684\u65b0\u65b9\u683c\u662f\u5426\u5df2\u7ecf\u662f\u9ecf\u9ecf\u7684\u3002\", \"If it steps onto a square it has never touched before, nothing is added to the answer.\": \"\u5982\u679c\u5b83\u8d70\u5230\u4e00\u4e2a\u4ece\u672a\u78b0\u8fc7\u7684\u65b9\u683c\uff0c\u7b54\u6848\u4e0d\u589e\u52a0\u3002\", \"If it steps onto a square that is already slimy, the snail has returned to an old square, so we add 1 to the answer.\": \"\u5982\u679c\u5b83\u8d70\u5230\u4e00\u4e2a\u5df2\u7ecf\u9ecf\u9ecf\u7684\u65b9\u683c\uff0c\u8bf4\u660e\u8717\u725b\u56de\u5230\u4e86\u65e7\u65b9\u683c\uff0c\u56e0\u6b64\u7b54\u6848\u52a0 1\u3002\", \"So the problem is really asking: as the snail walks step by step, how many times does it revisit an old square?\": \"\u6240\u4ee5\u8fd9\u9053\u9898\u771f\u6b63\u8981\u95ee\u7684\u662f\uff1a\u8717\u725b\u4e00\u6b65\u4e00\u6b65\u79fb\u52a8\u65f6\uff0c\u6709\u591a\u5c11\u6b21\u91cd\u65b0\u8fdb\u5165\u4e86\u65e7\u65b9\u683c\uff1f\", \"Important Detail Students Often Miss\": \"\u5b66\u751f\u7ecf\u5e38\u5ffd\u7565\u7684\u91cd\u8981\u7ec6\u8282\", \"A movement like S2 does not mean one big jump. It means move 1 square south, then move 1 more square south.\": \"\u50cf S2 \u8fd9\u6837\u7684\u79fb\u52a8\u5e76\u4e0d\u8868\u793a\u4e00\u6b21\u5927\u8df3\u8dc3\u3002\u5b83\u8868\u793a\u5148\u5411\u5357\u79fb\u52a8 1 \u683c\uff0c\u518d\u5411\u5357\u79fb\u52a8 1 \u683c\u3002\", \"A movement like\": \"\u50cf\", \"does not mean one big jump. It means move 1 square south, then move 1 more square south.\": \"\u8fd9\u6837\u7684\u79fb\u52a8\u5e76\u4e0d\u8868\u793a\u4e00\u6b21\u5927\u8df3\u8dc3\u3002\u5b83\u8868\u793a\u5148\u5411\u5357\u79fb\u52a8 1 \u683c\uff0c\u518d\u5411\u5357\u79fb\u52a8 1 \u683c\u3002\", \"You must process movements one square at a time, because the snail could enter an already slimy square in the middle of a longer movement. The movement format is a direction letter followed by a positive integer up to 20.\": \"\u5fc5\u987b\u4e00\u683c\u4e00\u683c\u5904\u7406\u79fb\u52a8\uff0c\u56e0\u4e3a\u8717\u725b\u53ef\u80fd\u5728\u4e00\u6b21\u8f83\u957f\u79fb\u52a8\u7684\u4e2d\u9014\u8fdb\u5165\u5df2\u7ecf\u9ecf\u9ecf\u7684\u65b9\u683c\u3002\u79fb\u52a8\u683c\u5f0f\u662f\u4e00\u4e2a\u65b9\u5411\u5b57\u6bcd\u540e\u63a5\u4e00\u4e2a\u6700\u5927\u4e3a 20 \u7684\u6b63\u6574\u6570\u3002\", \"Core DSA Concepts\": \"\u6838\u5fc3 DSA \u6982\u5ff5\", \"Simulation:\": \"\u6a21\u62df\uff1a\", \"follow the snail exactly as described, updating its position and trail step by step.\": \"\u4e25\u683c\u6309\u7167\u9898\u610f\u8ddf\u968f\u8717\u725b\u79fb\u52a8\uff0c\u9010\u6b65\u66f4\u65b0\u4f4d\u7f6e\u548c\u8def\u5f84\u3002\", \"Hash set \/ visited set:\": \"\u54c8\u5e0c\u96c6\u5408 \/ visited set\uff1a\", \"remember which squares are already slimy using coordinate pairs such as (x, y).\": \"\u7528 (x, y) \u8fd9\u6837\u7684\u5750\u6807\u5bf9\u8bb0\u5f55\u54ea\u4e9b\u65b9\u683c\u5df2\u7ecf\u53d8\u9ecf\u3002\", \"Coordinates on a grid:\": \"\u7f51\u683c\u5750\u6807\uff1a\", \"use x for east\/west and y for north\/south.\": \"\u7528 x \u8868\u793a\u4e1c\u897f\u65b9\u5411\uff0c\u7528 y \u8868\u793a\u5357\u5317\u65b9\u5411\u3002\", \"Unit-step processing:\": \"\u9010\u683c\u5904\u7406\uff1a\", \"break each command into single-square moves before checking whether the square was already visited.\": \"\u628a\u6bcf\u6761\u6307\u4ee4\u62c6\u6210\u4e00\u683c\u4e00\u683c\u7684\u79fb\u52a8\uff0c\u518d\u68c0\u67e5\u8be5\u65b9\u683c\u662f\u5426\u5df2\u7ecf\u8bbf\u95ee\u8fc7\u3002\", \"Coordinate Updates\": \"\u5750\u6807\u66f4\u65b0\", \"North:\": \"\u5317\uff1a\", \"South:\": \"\u5357\uff1a\", \"East:\": \"\u4e1c\uff1a\", \"West:\": \"\u897f\uff1a\", \"Big Idea\": \"\u6838\u5fc3\u601d\u8def\", \"Start from the original square and add it to a visited set. For each movement command, repeat the movement one square at a time. After each single step, check whether the new coordinate is already in the set. If it is, increase the revisit count. Then add the coordinate to the set.\": \"\u4ece\u8d77\u59cb\u65b9\u683c\u5f00\u59cb\uff0c\u5e76\u628a\u5b83\u52a0\u5165 visited set\u3002\u5bf9\u4e8e\u6bcf\u6761\u79fb\u52a8\u6307\u4ee4\uff0c\u90fd\u4e00\u683c\u4e00\u683c\u91cd\u590d\u79fb\u52a8\u3002\u6bcf\u8d70\u4e00\u6b65\u540e\uff0c\u68c0\u67e5\u65b0\u7684\u5750\u6807\u662f\u5426\u5df2\u7ecf\u5728\u96c6\u5408\u4e2d\u3002\u5982\u679c\u5728\uff0c\u5c31\u628a\u91cd\u590d\u8fdb\u5165\u6b21\u6570\u52a0 1\u3002\u7136\u540e\u628a\u8be5\u5750\u6807\u52a0\u5165\u96c6\u5408\u3002\", \"Treating \": \"\u628a \", \"Treating\": \"\u628a\", \" as one jump:\": \" \u5f53\u4f5c\u4e00\u6b21\u8df3\u8dc3\uff1a\", \"as one jump:\": \"\u5f53\u4f5c\u4e00\u6b21\u8df3\u8dc3\uff1a\", \"that is wrong. The snail passes through 20 squares one by one, and any of those may already be slimy.\": \"\u8fd9\u662f\u9519\u8bef\u7684\u3002\u8717\u725b\u4f1a\u4e00\u683c\u4e00\u683c\u7ecf\u8fc7 20 \u4e2a\u65b9\u683c\uff0c\u5176\u4e2d\u4efb\u610f\u4e00\u4e2a\u90fd\u53ef\u80fd\u5df2\u7ecf\u662f\u9ecf\u9ecf\u7684\u3002\", \"Forgetting the starting square:\": \"\u5fd8\u8bb0\u8d77\u59cb\u65b9\u683c\uff1a\", \"the starting square must already be in visited, otherwise returning to start will not be counted correctly.\": \"\u8d77\u59cb\u65b9\u683c\u5fc5\u987b\u4e00\u5f00\u59cb\u5c31\u5728 visited \u4e2d\uff0c\u5426\u5219\u56de\u5230\u8d77\u70b9\u65f6\u65e0\u6cd5\u6b63\u786e\u8ba1\u6570\u3002\", \"the starting square must already be in\": \"\u8d77\u59cb\u65b9\u683c\u5fc5\u987b\u4e00\u5f00\u59cb\u5c31\u5728\", \", otherwise returning to start will not be counted correctly.\": \"\uff0c\u5426\u5219\u56de\u5230\u8d77\u70b9\u65f6\u65e0\u6cd5\u6b63\u786e\u8ba1\u6570\u3002\", \"Counting distinct repeated squares instead of total re-entries:\": \"\u7edf\u8ba1\u4e0d\u540c\u7684\u91cd\u590d\u65b9\u683c\uff0c\u800c\u4e0d\u662f\u603b\u91cd\u5165\u6b21\u6570\uff1a\", \"the output is how many times the snail enters a slimy square, not how many slimy squares are revisited. A single square can be entered many times and should be counted many times. The statement explicitly notes that one slimy square can be entered multiple times.\": \"\u8f93\u51fa\u7684\u662f\u8717\u725b\u8fdb\u5165\u9ecf\u9ecf\u65b9\u683c\u7684\u6b21\u6570\uff0c\u800c\u4e0d\u662f\u6709\u591a\u5c11\u4e2a\u9ecf\u9ecf\u65b9\u683c\u88ab\u91cd\u65b0\u8bbf\u95ee\u3002\u4e00\u4e2a\u65b9\u683c\u53ef\u4ee5\u88ab\u8fdb\u5165\u591a\u6b21\uff0c\u4e5f\u5e94\u8be5\u88ab\u8ba1\u6570\u591a\u6b21\u3002\u9898\u76ee\u4e5f\u660e\u786e\u8bf4\u660e\uff0c\u4e00\u4e2a\u9ecf\u9ecf\u7684\u65b9\u683c\u53ef\u4ee5\u88ab\u8fdb\u5165\u591a\u6b21\u3002\", \"Using a list instead of a set:\": \"\u4f7f\u7528 list \u800c\u4e0d\u662f set\uff1a\", \"a set is much faster for checking whether a coordinate has been seen before.\": \"\u68c0\u67e5\u67d0\u4e2a\u5750\u6807\u662f\u5426\u51fa\u73b0\u8fc7\u65f6\uff0cset \u4f1a\u5feb\u5f97\u591a\u3002\", \"CCC 2026 J5\/S2 - Beams of Light Solution & Analysis\": \"CCC 2026 J5\/S2 - Beams of Light \u89e3\u9898\u4e0e\u5206\u6790\", \"CCC 2026 J5\/S2 \u2013 Beams of Light Solution & Analysis\": \"CCC 2026 J5\/S2 - Beams of Light \u89e3\u9898\u4e0e\u5206\u6790\", \"Use interval coverage, a difference array, and prefix sums to answer illumination queries efficiently.\": \"\u4f7f\u7528\u533a\u95f4\u8986\u76d6\u3001\u5dee\u5206\u6570\u7ec4\u548c\u524d\u7f00\u548c\uff0c\u9ad8\u6548\u56de\u7b54\u505c\u8f66\u4f4d\u662f\u5426\u88ab\u7167\u4eae\u7684\u67e5\u8be2\u3002\", \"You have parking spots numbered 1 to N. Each light is hung above one spot P and shines from P - S to P + S, clipped to stay inside 1..N. Then you get Q questions, each asking whether a particular parking spot is lit by at least one light. Since N, L, and Q can each be as large as 500,000, checking every light for every question would be too slow.\": \"\u505c\u8f66\u4f4d\u7f16\u53f7\u4e3a 1 \u5230 N\u3002\u6bcf\u76cf\u706f\u6302\u5728\u4f4d\u7f6e P \u4e0a\u65b9\uff0c\u7167\u4eae\u4ece P - S \u5230 P + S \u7684\u8303\u56f4\uff0c\u5e76\u88ab\u9650\u5236\u5728 1..N \u5185\u3002\u63a5\u4e0b\u6765\u6709 Q \u4e2a\u95ee\u9898\uff0c\u6bcf\u4e2a\u95ee\u9898\u8be2\u95ee\u67d0\u4e2a\u505c\u8f66\u4f4d\u662f\u5426\u81f3\u5c11\u88ab\u4e00\u76cf\u706f\u7167\u4eae\u3002\u7531\u4e8e N\u3001L \u548c Q \u90fd\u53ef\u80fd\u8fbe\u5230 500,000\uff0c\u5982\u679c\u5bf9\u6bcf\u4e2a\u67e5\u8be2\u90fd\u68c0\u67e5\u6bcf\u4e00\u76cf\u706f\uff0c\u4f1a\u975e\u5e38\u6162\u3002\", \"Key Concepts\": \"\u6838\u5fc3\u6982\u5ff5\", \"Interval coverage\": \"\u533a\u95f4\u8986\u76d6\", \"Difference array\": \"\u5dee\u5206\u6570\u7ec4\", \"Prefix sums\": \"\u524d\u7f00\u548c\", \"Preprocessing for O(1) queries\": \"\u9884\u5904\u7406\u540e O(1) \u56de\u7b54\u67e5\u8be2\", \"Thinking Process\": \"\u601d\u8003\u8fc7\u7a0b\", \"Each light covers one continuous interval. For a light at position P with spread S, compute left = max(1, P - S) and right = min(N, P + S). Instead of marking every covered spot, mark only the boundary changes: add 1 at left and subtract 1 just after right. A prefix sum then tells us how many lights cover each parking spot. If the coverage at a queried spot is greater than 0, print Y; otherwise, print N.\": \"\u6bcf\u76cf\u706f\u8986\u76d6\u4e00\u4e2a\u8fde\u7eed\u533a\u95f4\u3002\u5bf9\u4e8e\u4f4d\u7f6e\u4e3a P\u3001\u6269\u6563\u8303\u56f4\u4e3a S \u7684\u706f\uff0c\u8ba1\u7b97 left = max(1, P - S)\uff0cright = min(N, P + S)\u3002\u4e0d\u8981\u9010\u4e2a\u6807\u8bb0\u6240\u6709\u88ab\u7167\u4eae\u7684\u4f4d\u7f6e\uff0c\u800c\u53ea\u8bb0\u5f55\u8fb9\u754c\u53d8\u5316\uff1a\u5728 left \u5904\u52a0 1\uff0c\u5728 right \u4e4b\u540e\u51cf 1\u3002\u4e4b\u540e\u901a\u8fc7\u524d\u7f00\u548c\u5373\u53ef\u77e5\u9053\u6bcf\u4e2a\u505c\u8f66\u4f4d\u88ab\u591a\u5c11\u76cf\u706f\u8986\u76d6\u3002\u5982\u679c\u67e5\u8be2\u4f4d\u7f6e\u7684\u8986\u76d6\u6570\u5927\u4e8e 0\uff0c\u8f93\u51fa Y\uff1b\u5426\u5219\u8f93\u51fa N\u3002\", \"Each light covers one continuous interval. For a light at position P with spread S, compute left = max(1, P \u2013 S) and right = min(N, P + S). Instead of marking every covered spot, mark only the boundary changes: add 1 at left and subtract 1 just after right. A prefix sum then tells us how many lights cover each parking spot. If the coverage at a queried spot is greater than 0, print Y; otherwise, print N.\": \"\u6bcf\u76cf\u706f\u8986\u76d6\u4e00\u4e2a\u8fde\u7eed\u533a\u95f4\u3002\u5bf9\u4e8e\u4f4d\u7f6e\u4e3a P\u3001\u6269\u6563\u8303\u56f4\u4e3a S \u7684\u706f\uff0c\u8ba1\u7b97 left = max(1, P - S)\uff0cright = min(N, P + S)\u3002\u4e0d\u8981\u9010\u4e2a\u6807\u8bb0\u6240\u6709\u88ab\u7167\u4eae\u7684\u4f4d\u7f6e\uff0c\u800c\u53ea\u8bb0\u5f55\u8fb9\u754c\u53d8\u5316\uff1a\u5728 left \u5904\u52a0 1\uff0c\u5728 right \u4e4b\u540e\u51cf 1\u3002\u4e4b\u540e\u901a\u8fc7\u524d\u7f00\u548c\u5373\u53ef\u77e5\u9053\u6bcf\u4e2a\u505c\u8f66\u4f4d\u88ab\u591a\u5c11\u76cf\u706f\u8986\u76d6\u3002\u5982\u679c\u67e5\u8be2\u4f4d\u7f6e\u7684\u8986\u76d6\u6570\u5927\u4e8e 0\uff0c\u8f93\u51fa Y\uff1b\u5426\u5219\u8f93\u51fa N\u3002\", \"Solution #1: Brute Force\": \"\u89e3\u6cd5\u4e00\uff1a\u66b4\u529b\u6807\u8bb0\", \"The most direct idea is to mark every parking spot that each light covers. This is simple and useful for understanding the problem, but it can be too slow when N, L, and Q are large.\": \"\u6700\u76f4\u63a5\u7684\u60f3\u6cd5\u662f\u628a\u6bcf\u76cf\u706f\u8986\u76d6\u7684\u6240\u6709\u505c\u8f66\u4f4d\u9010\u4e2a\u6807\u8bb0\u51fa\u6765\u3002\u8fd9\u4e2a\u65b9\u6cd5\u7b80\u5355\uff0c\u4e5f\u6709\u52a9\u4e8e\u7406\u89e3\u9898\u610f\uff0c\u4f46\u5f53 N\u3001L \u548c Q \u5f88\u5927\u65f6\u4f1a\u592a\u6162\u3002\", \"Solution #2: Difference Array\": \"\u89e3\u6cd5\u4e8c\uff1a\u5dee\u5206\u6570\u7ec4\", \"The optimized solution marks only the start and end boundary changes for each light. After one prefix sum pass, every query can be answered in O(1).\": \"\u4f18\u5316\u65b9\u6cd5\u53ea\u8bb0\u5f55\u6bcf\u76cf\u706f\u8986\u76d6\u533a\u95f4\u7684\u8d77\u70b9\u548c\u7ec8\u70b9\u8fb9\u754c\u53d8\u5316\u3002\u5b8c\u6210\u4e00\u6b21\u524d\u7f00\u548c\u540e\uff0c\u6bcf\u4e2a\u67e5\u8be2\u90fd\u53ef\u4ee5 O(1) \u56de\u7b54\u3002\", \"Python Solution\": \"Python \u89e3\u6cd5\", \"C++ Solution\": \"C++ \u89e3\u6cd5\", \"Complexity Analysis\": \"\u590d\u6742\u5ea6\u5206\u6790\", \"Building the difference array takes O(L). Computing the prefix sums takes O(N). Answering all queries takes O(Q). The total time complexity is O(N + L + Q), and the memory usage is O(N).\": \"\u6784\u5efa\u5dee\u5206\u6570\u7ec4\u9700\u8981 O(L)\uff0c\u8ba1\u7b97\u524d\u7f00\u548c\u9700\u8981 O(N)\uff0c\u56de\u7b54\u6240\u6709\u67e5\u8be2\u9700\u8981 O(Q)\u3002\u603b\u65f6\u95f4\u590d\u6742\u5ea6\u4e3a O(N + L + Q)\uff0c\u7a7a\u95f4\u590d\u6742\u5ea6\u4e3a O(N)\u3002\", \"Common Mistakes\": \"\u5e38\u89c1\u9519\u8bef\", \"Marking every spot covered by every light, which can be too slow for large spreads.\": \"\u9010\u4e2a\u6807\u8bb0\u6bcf\u76cf\u706f\u8986\u76d6\u7684\u6240\u6709\u4f4d\u7f6e\uff0c\u5728\u8303\u56f4\u5f88\u5927\u65f6\u4f1a\u592a\u6162\u3002\", \"Forgetting to clip intervals to the valid range 1..N.\": \"\u5fd8\u8bb0\u628a\u533a\u95f4\u9650\u5236\u5728\u6709\u6548\u8303\u56f4 1..N \u5185\u3002\", \"Forgetting the -1 update at right + 1.\": \"\u5fd8\u8bb0\u5728 right + 1 \u5904\u505a -1 \u66f4\u65b0\u3002\", \"Using nested loops over lights and queries.\": \"\u5bf9\u706f\u548c\u67e5\u8be2\u4f7f\u7528\u5d4c\u5957\u5faa\u73af\u3002\", \"Learning Outcomes\": \"\u5b66\u4e60\u76ee\u6807\", \"Recognize interval coverage problems.\": \"\u8bc6\u522b\u533a\u95f4\u8986\u76d6\u7c7b\u95ee\u9898\u3002\", \"Use a difference array to apply many range updates efficiently.\": \"\u4f7f\u7528\u5dee\u5206\u6570\u7ec4\u9ad8\u6548\u5904\u7406\u5927\u91cf\u533a\u95f4\u66f4\u65b0\u3002\", \"Use prefix sums to convert boundary changes into actual coverage.\": \"\u4f7f\u7528\u524d\u7f00\u548c\u628a\u8fb9\u754c\u53d8\u5316\u8f6c\u6362\u4e3a\u5b9e\u9645\u8986\u76d6\u60c5\u51b5\u3002\", \"Preprocess once so each query can be answered in O(1).\": \"\u901a\u8fc7\u4e00\u6b21\u9884\u5904\u7406\uff0c\u8ba9\u6bcf\u4e2a\u67e5\u8be2\u90fd\u80fd O(1) \u56de\u7b54\u3002\", \"Read Practice Review\": \"\u9605\u8bfb \u7ec3\u4e60 \u590d\u76d8\", \"Read\\nPractice\\nReview\": \"\u9605\u8bfb\\n\u7ec3\u4e60\\n\u590d\u76d8\", \"Part of the Accel Thinking content library for programming, AI literacy, and future skills.\": \"\u52a0\u901f\u5ea6\u601d\u7ef4\u5185\u5bb9\u5e93\u7684\u4e00\u90e8\u5206\uff0c\u9762\u5411\u7f16\u7a0b\u3001AI\u7d20\u517b\u4e0e\u672a\u6765\u6280\u80fd\u5b66\u4e60\u3002\", \"By Berny\": \"\u4f5c\u8005\uff1aBerny\", \"Back to Resources\": \"\u8fd4\u56de\u8d44\u6e90\u6587\u7ae0\", \"Open Channel\": \"\u6253\u5f00\u9891\u9053\", \"LATEST\": \"\u6700\u65b0\", \"Read Full Article\": \"\u9605\u8bfb\u5168\u6587\", \"Python Learning Notes\": \"Python \u5b66\u4e60\u7b14\u8bb0\", \"CP Weekly Challenges\": \"CP \u6bcf\u5468\u6311\u6218\", \"AI Literacy Articles\": \"AI \u7d20\u517b\u6587\u7ae0\", \"Resources for Programming, AI, and Future Skills\": \"\u7f16\u7a0b\u3001AI\u4e0e\u672a\u6765\u6280\u80fd\u8d44\u6e90\", \"A long-term content hub for parents, students, educators, and teams who want practical technology learning guidance.\": \"\u4e00\u4e2a\u957f\u671f\u5185\u5bb9\u5165\u53e3\uff0c\u670d\u52a1\u4e8e\u5e0c\u671b\u83b7\u5f97\u5b9e\u7528\u6280\u672f\u5b66\u4e60\u6307\u5bfc\u7684\u5bb6\u957f\u3001\u5b66\u751f\u3001\u6559\u80b2\u8005\u548c\u56e2\u961f\u3002\", \"Python CCC AI Literacy\": \"Python CCC AI\u7d20\u517b\", \"Start with focused learning notes today. Over time, this becomes the public library behind Accel Thinking.\": \"\u5148\u4ece\u805a\u7126\u7684\u5b66\u4e60\u7b14\u8bb0\u5f00\u59cb\uff0c\u9010\u6b65\u6c89\u6dc0\u4e3a\u52a0\u901f\u5ea6\u601d\u7ef4\u7684\u516c\u5f00\u5185\u5bb9\u5e93\u3002\", \"Explore by Topic\": \"\u6309\u4e3b\u9898\u6d4f\u89c8\", \"Choose a channel to follow weekly articles, learning notes, and practical guidance.\": \"\u9009\u62e9\u4e00\u4e2a\u9891\u9053\uff0c\u6301\u7eed\u9605\u8bfb\u6bcf\u5468\u6587\u7ae0\u3001\u5b66\u4e60\u7b14\u8bb0\u4e0e\u5b9e\u8df5\u6307\u5357\u3002\", \"Practical Python concepts, coding habits, project notes, debugging guidance, and student-friendly explanations.\": \"\u5b9e\u7528 Python \u6982\u5ff5\u3001\u7f16\u7801\u4e60\u60ef\u3001\u9879\u76ee\u7b14\u8bb0\u3001\u8c03\u8bd5\u65b9\u6cd5\uff0c\u4ee5\u53ca\u9002\u5408\u5b66\u751f\u9605\u8bfb\u7684\u89e3\u91ca\u3002\", \"CCC-style problem explanations, implementation notes, common mistakes, and weekly practice challenges.\": \"CCC \u98ce\u683c\u9898\u76ee\u89e3\u6790\u3001\u5b9e\u73b0\u8bf4\u660e\u3001\u5e38\u89c1\u9519\u8bef\u4e0e\u6bcf\u5468\u7ec3\u4e60\u6311\u6218\u3002\", \"Student and parent guidance on using AI tools responsibly while protecting real thinking ability.\": \"\u9762\u5411\u5b66\u751f\u548c\u5bb6\u957f\u7684 AI \u4f7f\u7528\u6307\u5bfc\uff0c\u5f3a\u8c03\u8d1f\u8d23\u4efb\u4f7f\u7528\uff0c\u540c\u65f6\u4fdd\u62a4\u771f\u5b9e\u601d\u8003\u80fd\u529b\u3002\", \"Python Syntax Basics: Print, Variables, and Types\": \"Python \u8bed\u6cd5\u57fa\u7840\uff1aprint\u3001\u53d8\u91cf\u4e0e\u7c7b\u578b\", \"Why Learn Python? Start with Readability, Not Syntax\": \"\u4e3a\u4ec0\u4e48\u5b66\u4e60 Python\uff1f\u4ece\u53ef\u8bfb\u6027\u5f00\u59cb\uff0c\u800c\u4e0d\u662f\u4ece\u8bed\u6cd5\u5f00\u59cb\", \"Using Codex to Support Python JamHack Competition Preparation\": \"\u7528 Codex \u52a9\u529b Python JamHack \u7ade\u8d5b\u51c6\u5907\", \"CCC 2024 J5 - Harvest Waterloo Solution & Analysis\": \"CCC 2024 J5 - Harvest Waterloo \u89e3\u9898\u4e0e\u5206\u6790\", \"CCC 2024 J5 \u2013 Harvest Waterloo Solution & Analysis\": \"CCC 2024 J5 - Harvest Waterloo \u89e3\u9898\u4e0e\u5206\u6790\", \"A beginner-friendly Python note on print(), comments, variable naming, basic types, and converting input before doing math.\": \"\u4e00\u7bc7\u9002\u5408\u521d\u5b66\u8005\u7684 Python \u7b14\u8bb0\uff0c\u4ecb\u7ecd print()\u3001\u6ce8\u91ca\u3001\u53d8\u91cf\u547d\u540d\u3001\u57fa\u7840\u7c7b\u578b\uff0c\u4ee5\u53ca\u505a\u6570\u5b66\u8fd0\u7b97\u524d\u5982\u4f55\u8f6c\u6362\u8f93\u5165\u3002\", \"A short Python Learning Note based on Phase I materials: why Python is a good first language, and why beginners should start with readability rather than memorizing syntax.\": \"\u4e00\u7bc7\u57fa\u4e8e Phase I \u8bb2\u4e49\u7684 Python \u5b66\u4e60\u7b14\u8bb0\uff1a\u4e3a\u4ec0\u4e48 Python \u9002\u5408\u4f5c\u4e3a\u7b2c\u4e00\u95e8\u8bed\u8a00\uff0c\u4ee5\u53ca\u521d\u5b66\u8005\u4e3a\u4ec0\u4e48\u5e94\u5148\u7406\u89e3\u53ef\u8bfb\u6027\uff0c\u800c\u4e0d\u662f\u6025\u7740\u80cc\u8bed\u6cd5\u3002\", \"A practical look at how Codex can help students prepare for Python JamHack without replacing their own thinking, debugging, and teamwork.\": \"\u4e00\u7bc7\u5b9e\u8df5\u578b\u6587\u7ae0\uff0c\u8ba8\u8bba\u5b66\u751f\u5982\u4f55\u4f7f\u7528 Codex \u51c6\u5907 Python JamHack\uff0c\u540c\u65f6\u4e0d\u66ff\u4ee3\u81ea\u5df1\u7684\u601d\u8003\u3001\u8c03\u8bd5\u548c\u56e2\u961f\u534f\u4f5c\u3002\", \"After students understand why Python is a good first language, the next step is learning how to read a small Python program without feeling lost. Syntax is not just punctuation. It is the visible structure that tells us what the program is doing.\": \"\u5f53\u5b66\u751f\u7406\u89e3\u4e86\u4e3a\u4ec0\u4e48 Python \u9002\u5408\u4f5c\u4e3a\u7b2c\u4e00\u95e8\u8bed\u8a00\u4e4b\u540e\uff0c\u4e0b\u4e00\u6b65\u5c31\u662f\u5b66\u4f1a\u9605\u8bfb\u4e00\u4e2a\u5c0f\u578b Python \u7a0b\u5e8f\u800c\u4e0d\u8ff7\u5931\u3002\u8bed\u6cd5\u4e0d\u53ea\u662f\u6807\u70b9\u548c\u683c\u5f0f\uff0c\u5b83\u662f\u7a0b\u5e8f\u7ed3\u6784\u7684\u5916\u5728\u8868\u73b0\uff0c\u544a\u8bc9\u6211\u4eec\u7a0b\u5e8f\u6b63\u5728\u505a\u4ec0\u4e48\u3002\", \"Start with print()\": \"\u4ece print() \u5f00\u59cb\", \"The first useful Python command is usually print(). It sends a value to the screen so we can see what the program is doing.\": \"\u7b2c\u4e00\u4e2a\u771f\u6b63\u6709\u7528\u7684 Python \u547d\u4ee4\u901a\u5e38\u662f print()\u3002\u5b83\u628a\u503c\u8f93\u51fa\u5230\u5c4f\u5e55\u4e0a\uff0c\u8ba9\u6211\u4eec\u770b\u5230\u7a0b\u5e8f\u6b63\u5728\u505a\u4ec0\u4e48\u3002\", \"For beginners, print() is more than output. It is also a simple debugging tool. When a program feels confusing, printing intermediate values can help students check what is happening step by step.\": \"\u5bf9\u521d\u5b66\u8005\u6765\u8bf4\uff0cprint() \u4e0d\u53ea\u662f\u8f93\u51fa\u5de5\u5177\uff0c\u4e5f\u662f\u6700\u7b80\u5355\u7684\u8c03\u8bd5\u5de5\u5177\u3002\u5f53\u7a0b\u5e8f\u8ba9\u4eba\u56f0\u60d1\u65f6\uff0c\u6253\u5370\u4e2d\u95f4\u503c\u53ef\u4ee5\u5e2e\u52a9\u5b66\u751f\u4e00\u6b65\u4e00\u6b65\u68c0\u67e5\u53d1\u751f\u4e86\u4ec0\u4e48\u3002\", \"Use Comments to Explain Your Thinking\": \"\u7528\u6ce8\u91ca\u89e3\u91ca\u4f60\u7684\u601d\u8def\", \"Python ignores anything after # on the same line. That makes comments useful for explaining intent.\": \"Python \u4f1a\u5ffd\u7565\u540c\u4e00\u884c\u4e2d # \u540e\u9762\u7684\u5185\u5bb9\u3002\u56e0\u6b64\uff0c\u6ce8\u91ca\u5f88\u9002\u5408\u7528\u6765\u89e3\u91ca\u4ee3\u7801\u610f\u56fe\u3002\", \"A good comment should explain why the code exists, not simply repeat what the code already says.\": \"\u597d\u7684\u6ce8\u91ca\u5e94\u8be5\u89e3\u91ca\u4ee3\u7801\u4e3a\u4ec0\u4e48\u5b58\u5728\uff0c\u800c\u4e0d\u662f\u7b80\u5355\u91cd\u590d\u4ee3\u7801\u672c\u8eab\u5df2\u7ecf\u8868\u8fbe\u7684\u5185\u5bb9\u3002\", \"Variables Give Names to Ideas\": \"\u53d8\u91cf\u4e3a\u60f3\u6cd5\u547d\u540d\", \"A variable stores a value so we can reuse it later. Clear variable names make programs easier to read.\": \"\u53d8\u91cf\u7528\u6765\u4fdd\u5b58\u4e00\u4e2a\u503c\uff0c\u65b9\u4fbf\u4e4b\u540e\u91cd\u590d\u4f7f\u7528\u3002\u6e05\u6670\u7684\u53d8\u91cf\u540d\u4f1a\u8ba9\u7a0b\u5e8f\u66f4\u5bb9\u6613\u9605\u8bfb\u3002\", \"Python variable names are case-sensitive, so score and Score are different names. In student code, it is better to use lowercase words separated by underscores, also called snake case.\": \"Python \u7684\u53d8\u91cf\u540d\u533a\u5206\u5927\u5c0f\u5199\uff0c\u6240\u4ee5 score \u548c Score \u662f\u4e24\u4e2a\u4e0d\u540c\u7684\u540d\u5b57\u3002\u5728\u5b66\u751f\u4ee3\u7801\u4e2d\uff0c\u66f4\u63a8\u8350\u4f7f\u7528\u5c0f\u5199\u5355\u8bcd\u5e76\u7528\u4e0b\u5212\u7ebf\u8fde\u63a5\uff0c\u4e5f\u5c31\u662f snake case\u3002\", \"Python Infers Types\": \"Python \u4f1a\u63a8\u65ad\u7c7b\u578b\", \"Python is dynamically typed. Students do not need to declare a variable type before assigning a value.\": \"Python \u662f\u52a8\u6001\u7c7b\u578b\u8bed\u8a00\u3002\u5b66\u751f\u5728\u7ed9\u53d8\u91cf\u8d4b\u503c\u4e4b\u524d\uff0c\u4e0d\u9700\u8981\u5148\u58f0\u660e\u53d8\u91cf\u7c7b\u578b\u3002\", \"This flexibility is helpful, but it also means students should pay attention to what kind of value each variable contains.\": \"\u8fd9\u79cd\u7075\u6d3b\u6027\u5f88\u6709\u5e2e\u52a9\uff0c\u4f46\u4e5f\u610f\u5473\u7740\u5b66\u751f\u9700\u8981\u7559\u610f\u6bcf\u4e2a\u53d8\u91cf\u91cc\u4fdd\u5b58\u7684\u662f\u4ec0\u4e48\u7c7b\u578b\u7684\u503c\u3002\", \"Convert Input Before Doing Math\": \"\u505a\u6570\u5b66\u8fd0\u7b97\u524d\u5148\u8f6c\u6362\u8f93\u5165\", \"User input arrives as text. If we want to do arithmetic, we usually need to convert it with int() or float().\": \"\u7528\u6237\u8f93\u5165\u8fdb\u6765\u65f6\u662f\u6587\u672c\u3002\u5982\u679c\u8981\u505a\u7b97\u672f\u8fd0\u7b97\uff0c\u901a\u5e38\u9700\u8981\u7528 int() \u6216 float() \u5148\u8f6c\u6362\u7c7b\u578b\u3002\", \"This is one of the most common early Python mistakes: trying to add input strings as if they were numbers.\": \"\u8fd9\u662f Python \u521d\u5b66\u9636\u6bb5\u6700\u5e38\u89c1\u7684\u9519\u8bef\u4e4b\u4e00\uff1a\u628a\u8f93\u5165\u5b57\u7b26\u4e32\u5f53\u6210\u6570\u5b57\u76f4\u63a5\u76f8\u52a0\u3002\", \"Practice Prompt\": \"\u7ec3\u4e60\u63d0\u793a\", \"Write a short program that:\": \"\u5199\u4e00\u4e2a\u5c0f\u7a0b\u5e8f\uff0c\u5b8c\u6210\u4ee5\u4e0b\u4efb\u52a1\uff1a\", \"Reads a student's name.\": \"\u8bfb\u53d6\u4e00\u540d\u5b66\u751f\u7684\u59d3\u540d\u3002\", \"Reads two quiz scores.\": \"\u8bfb\u53d6\u4e24\u6b21\u5c0f\u6d4b\u6210\u7ee9\u3002\", \"Converts the scores to integers.\": \"\u628a\u6210\u7ee9\u8f6c\u6362\u4e3a\u6574\u6570\u3002\", \"Prints a sentence with the student's average score.\": \"\u8f93\u51fa\u4e00\u53e5\u8bdd\uff0c\u5305\u542b\u8fd9\u540d\u5b66\u751f\u7684\u5e73\u5747\u5206\u3002\", \"Key Takeaway\": \"\u5173\u952e\u6536\u83b7\", \"Beginner syntax should be learned through reading and small experiments. Focus first on a few reliable habits: print values, name variables clearly, check types when confused, and convert input before doing math.\": \"\u521d\u5b66\u8bed\u6cd5\u5e94\u8be5\u901a\u8fc7\u9605\u8bfb\u548c\u5c0f\u5b9e\u9a8c\u6765\u638c\u63e1\u3002\u5148\u517b\u6210\u51e0\u4e2a\u53ef\u9760\u4e60\u60ef\uff1a\u6253\u5370\u503c\u3001\u6e05\u6670\u547d\u540d\u53d8\u91cf\u3001\u56f0\u60d1\u65f6\u68c0\u67e5\u7c7b\u578b\u3001\u505a\u6570\u5b66\u8fd0\u7b97\u524d\u8f6c\u6362\u8f93\u5165\u3002\", \"Many students start learning Python by trying to memorize syntax: where to put parentheses, how to write a loop, or which function name to use. Syntax matters, but it is not the best starting point.\": \"\u5f88\u591a\u5b66\u751f\u521a\u5f00\u59cb\u5b66 Python \u65f6\uff0c\u4f1a\u6025\u7740\u80cc\u8bed\u6cd5\uff1a\u62ec\u53f7\u653e\u5728\u54ea\u91cc\u3001\u5faa\u73af\u600e\u4e48\u5199\u3001\u51fd\u6570\u540d\u8be5\u7528\u54ea\u4e2a\u3002\u8bed\u6cd5\u5f53\u7136\u91cd\u8981\uff0c\u4f46\u5b83\u4e0d\u662f\u6700\u597d\u7684\u8d77\u70b9\u3002\", \"A better first question is: what kind of thinking does Python encourage?\": \"\u66f4\u597d\u7684\u7b2c\u4e00\u4e2a\u95ee\u9898\u662f\uff1aPython \u9f13\u52b1\u6211\u4eec\u5f62\u6210\u4ec0\u4e48\u6837\u7684\u601d\u8003\u65b9\u5f0f\uff1f\", \"Python Is Friendly, But Not Because It Is \\\"Easy\\\"\": \"Python \u5f88\u53cb\u597d\uff0c\u4f46\u4e0d\u7b49\u4e8e\u201c\u5f88\u7b80\u5355\u201d\", \"People often say Python is easy. That can be misleading. Programming is still hard because students must learn how to break problems down, test ideas, debug mistakes, and explain logic clearly.\": \"\u4eba\u4eec\u5e38\u8bf4 Python \u5f88\u7b80\u5355\uff0c\u8fd9\u79cd\u8bf4\u6cd5\u53ef\u80fd\u4f1a\u8bef\u5bfc\u5b66\u751f\u3002\u7f16\u7a0b\u4ecd\u7136\u6709\u96be\u5ea6\uff0c\u56e0\u4e3a\u5b66\u751f\u9700\u8981\u5b66\u4e60\u5982\u4f55\u62c6\u89e3\u95ee\u9898\u3001\u6d4b\u8bd5\u60f3\u6cd5\u3001\u8c03\u8bd5\u9519\u8bef\uff0c\u5e76\u6e05\u695a\u89e3\u91ca\u903b\u8f91\u3002\", \"Python feels friendly because it removes some unnecessary visual noise. A simple program can look close to plain English:\": \"Python \u4e4b\u6240\u4ee5\u663e\u5f97\u53cb\u597d\uff0c\u662f\u56e0\u4e3a\u5b83\u51cf\u5c11\u4e86\u4e00\u4e9b\u4e0d\u5fc5\u8981\u7684\u89c6\u89c9\u566a\u97f3\u3002\u4e00\u4e2a\u7b80\u5355\u7a0b\u5e8f\u770b\u8d77\u6765\u53ef\u4ee5\u63a5\u8fd1\u65e5\u5e38\u82f1\u8bed\uff1a\", \"This allows beginners to focus less on ceremony and more on the core idea: giving precise instructions to a computer.\": \"\u8fd9\u8ba9\u521d\u5b66\u8005\u53ef\u4ee5\u5c11\u5173\u6ce8\u5f62\u5f0f\uff0c\u591a\u5173\u6ce8\u6838\u5fc3\uff1a\u5982\u4f55\u7ed9\u8ba1\u7b97\u673a\u660e\u786e\u3001\u7cbe\u786e\u7684\u6307\u4ee4\u3002\", \"Readability Counts\": \"\u53ef\u8bfb\u6027\u5f88\u91cd\u8981\", \"One of the most important ideas in Python is readability. Code is not only written for the computer. It is also written for people: classmates, teachers, teammates, and your future self.\": \"Python \u4e2d\u6700\u91cd\u8981\u7684\u7406\u5ff5\u4e4b\u4e00\u662f\u53ef\u8bfb\u6027\u3002\u4ee3\u7801\u4e0d\u53ea\u662f\u5199\u7ed9\u8ba1\u7b97\u673a\u770b\u7684\uff0c\u4e5f\u662f\u5199\u7ed9\u4eba\u770b\u7684\uff1a\u540c\u5b66\u3001\u8001\u5e08\u3001\u961f\u53cb\uff0c\u4ee5\u53ca\u672a\u6765\u7684\u81ea\u5df1\u3002\", \"For students, this means a good Python program should be easy to follow. Variable names should be meaningful. Steps should be organized. The logic should be visible.\": \"\u5bf9\u5b66\u751f\u6765\u8bf4\uff0c\u4e00\u4e2a\u597d\u7684 Python \u7a0b\u5e8f\u5e94\u8be5\u5bb9\u6613\u8ddf\u4e0a\u3002\u53d8\u91cf\u540d\u8981\u6709\u610f\u4e49\uff0c\u6b65\u9aa4\u8981\u6709\u7ec4\u7ec7\uff0c\u903b\u8f91\u8981\u770b\u5f97\u89c1\u3002\", \"This is better for learning than trying to make code short, clever, or mysterious.\": \"\u8fd9\u6bd4\u4e00\u5f00\u59cb\u5c31\u8ffd\u6c42\u4ee3\u7801\u77ed\u3001\u5de7\u5999\u6216\u96be\u61c2\u66f4\u9002\u5408\u5b66\u4e60\u3002\", \"Do Not Start by Memorizing Every Detail\": \"\u4e0d\u8981\u4ece\u80cc\u6240\u6709\u7ec6\u8282\u5f00\u59cb\", \"When learning a first programming language, students sometimes feel they must memorize everything before writing code. That is not how programmers actually work.\": \"\u5b66\u4e60\u7b2c\u4e00\u95e8\u7f16\u7a0b\u8bed\u8a00\u65f6\uff0c\u5b66\u751f\u6709\u65f6\u4f1a\u89c9\u5f97\u5fc5\u987b\u5148\u80cc\u5b8c\u6240\u6709\u5185\u5bb9\u624d\u80fd\u5199\u4ee3\u7801\u3002\u4f46\u771f\u5b9e\u7684\u7a0b\u5e8f\u5458\u5e76\u4e0d\u662f\u8fd9\u6837\u5de5\u4f5c\u7684\u3002\", \"A more practical approach is:\": \"\u66f4\u5b9e\u9645\u7684\u65b9\u6cd5\u662f\uff1a\", \"Read small examples.\": \"\u9605\u8bfb\u5c0f\u4f8b\u5b50\u3002\", \"Modify them.\": \"\u4fee\u6539\u5b83\u4eec\u3002\", \"Run the code.\": \"\u8fd0\u884c\u4ee3\u7801\u3002\", \"Observe what changes.\": \"\u89c2\u5bdf\u53d1\u751f\u4e86\u4ec0\u4e48\u53d8\u5316\u3002\", \"Write down patterns you see often.\": \"\u8bb0\u5f55\u7ecf\u5e38\u51fa\u73b0\u7684\u6a21\u5f0f\u3002\", \"Syntax becomes familiar through repeated use. The deeper skill is learning how to ask: what is the program trying to do, and how should the steps be organized?\": \"\u8bed\u6cd5\u4f1a\u5728\u53cd\u590d\u4f7f\u7528\u4e2d\u9010\u6e10\u719f\u6089\u3002\u66f4\u6df1\u5c42\u7684\u80fd\u529b\u662f\u5b66\u4f1a\u8ffd\u95ee\uff1a\u8fd9\u4e2a\u7a0b\u5e8f\u60f3\u505a\u4ec0\u4e48\uff1f\u6b65\u9aa4\u5e94\u8be5\u5982\u4f55\u7ec4\u7ec7\uff1f\", \"REPL vs .py File\": \"REPL \u4e0e .py \u6587\u4ef6\", \"Students should know two ways to run Python:\": \"\u5b66\u751f\u5e94\u8be5\u77e5\u9053\u4e24\u79cd\u8fd0\u884c Python \u7684\u65b9\u5f0f\uff1a\", \"1. The REPL\": \"1. REPL\", \"The REPL is an interactive Python prompt. It is useful for quick experiments.\": \"REPL \u662f\u4ea4\u4e92\u5f0f Python \u63d0\u793a\u7b26\uff0c\u9002\u5408\u5feb\u901f\u505a\u5c0f\u5b9e\u9a8c\u3002\", \"Use the REPL when you want to test one small idea.\": \"\u5f53\u4f60\u60f3\u6d4b\u8bd5\u4e00\u4e2a\u5f88\u5c0f\u7684\u60f3\u6cd5\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528 REPL\u3002\", \"2. A .py File\": \"2. .py \u6587\u4ef6\", \"A Python file is better when the program has multiple steps and should be saved.\": \"\u5f53\u7a0b\u5e8f\u6709\u591a\u4e2a\u6b65\u9aa4\u5e76\u4e14\u9700\u8981\u4fdd\u5b58\u65f6\uff0cPython \u6587\u4ef6\u66f4\u5408\u9002\u3002\", \"Use a .py file when you are building a real program, homework solution, or contest answer.\": \"\u5f53\u4f60\u5728\u5199\u4e00\u4e2a\u771f\u6b63\u7684\u7a0b\u5e8f\u3001\u4f5c\u4e1a\u89e3\u7b54\u6216\u7ade\u8d5b\u7b54\u6848\u65f6\uff0c\u5e94\u8be5\u4f7f\u7528 .py \u6587\u4ef6\u3002\", \"A Good First Learning Habit\": \"\u4e00\u4e2a\u597d\u7684\u5165\u95e8\u5b66\u4e60\u4e60\u60ef\", \"For every new Python concept, students should ask three questions:\": \"\u9047\u5230\u6bcf\u4e2a\u65b0\u7684 Python \u6982\u5ff5\u65f6\uff0c\u5b66\u751f\u90fd\u53ef\u4ee5\u95ee\u4e09\u4e2a\u95ee\u9898\uff1a\", \"What problem does this concept help solve?\": \"\u8fd9\u4e2a\u6982\u5ff5\u5e2e\u52a9\u89e3\u51b3\u4ec0\u4e48\u95ee\u9898\uff1f\", \"What does a simple example look like?\": \"\u4e00\u4e2a\u7b80\u5355\u4f8b\u5b50\u662f\u4ec0\u4e48\u6837\u7684\uff1f\", \"What mistake would be easy to make?\": \"\u6700\u5bb9\u6613\u72af\u7684\u9519\u8bef\u662f\u4ec0\u4e48\uff1f\", \"This habit is more useful than memorizing a long list of syntax rules.\": \"\u8fd9\u4e2a\u4e60\u60ef\u6bd4\u80cc\u4e00\u957f\u4e32\u8bed\u6cd5\u89c4\u5219\u66f4\u6709\u7528\u3002\", \"Try this small exercise:\": \"\u8bd5\u8bd5\u8fd9\u4e2a\u5c0f\u7ec3\u4e60\uff1a\", \"Create a file named hello.py.\": \"\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a hello.py \u7684\u6587\u4ef6\u3002\", \"Print your name.\": \"\u6253\u5370\u4f60\u7684\u540d\u5b57\u3002\", \"Create two variables: first_score and second_score.\": \"\u521b\u5efa\u4e24\u4e2a\u53d8\u91cf\uff1afirst_score \u548c second_score\u3002\", \"Print their average.\": \"\u6253\u5370\u5b83\u4eec\u7684\u5e73\u5747\u503c\u3002\", \"Rename the variables to make them clearer.\": \"\u91cd\u65b0\u547d\u540d\u53d8\u91cf\uff0c\u8ba9\u5b83\u4eec\u66f4\u6e05\u6670\u3002\", \"Python is a strong first language because it helps students practice clear thinking. The goal is not to memorize syntax as fast as possible. The goal is to learn how to write code that is readable, testable, and easy to explain.\": \"Python \u662f\u4e00\u95e8\u5f88\u597d\u7684\u7b2c\u4e00\u7f16\u7a0b\u8bed\u8a00\uff0c\u56e0\u4e3a\u5b83\u80fd\u5e2e\u52a9\u5b66\u751f\u7ec3\u4e60\u6e05\u6670\u601d\u8003\u3002\u76ee\u6807\u4e0d\u662f\u5c3d\u5feb\u80cc\u5b8c\u8bed\u6cd5\uff0c\u800c\u662f\u5b66\u4f1a\u5199\u51fa\u53ef\u8bfb\u3001\u53ef\u6d4b\u8bd5\u3001\u6613\u89e3\u91ca\u7684\u4ee3\u7801\u3002\"};\nconst titleMap = map;\n  document.documentElement.lang = 'zh-CN';\n  Object.keys(map).sort(function(a,b){return b.length-a.length;}).forEach(function(k){ document.title = document.title.replace(k, map[k]); });\n  function animatedHeading(el, text) {\n    const words = text.includes(' ') ? text.split(' ') : Array.from(text);\n    let offset = 0;\n    el.textContent = '';\n    words.forEach(function(word, wordIndex) {\n      const wordSpan = document.createElement('span');\n      wordSpan.className = 'ati-word';\n      Array.from(word).forEach(function(ch, i) {\n        const letter = document.createElement('span');\n        letter.className = 'ati-letter';\n        letter.style.setProperty('--i', offset + i);\n        letter.textContent = ch;\n        wordSpan.appendChild(letter);\n      });\n      el.appendChild(wordSpan);\n      offset += word.length + 1;\n      if (text.includes(' ') && wordIndex < words.length - 1) {\n        el.appendChild(document.createTextNode(' '));\n      }\n    });\n  }\n  document.querySelectorAll('h1[aria-label]').forEach(function(el){\n    const key = el.getAttribute('aria-label');\n    if (titleMap[key]) animatedHeading(el, titleMap[key]);\n  });\n  const skip = new Set(['SCRIPT','STYLE','PRE','CODE','TEXTAREA']);\n  const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, {\n    acceptNode: function(node){\n      const parent = node.parentElement;\n      if (!parent || skip.has(parent.tagName)) return NodeFilter.FILTER_REJECT;\n      return node.nodeValue.trim() ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n    }\n  });\n  const nodes = [];\n  while (walker.nextNode()) nodes.push(walker.currentNode);\n  nodes.forEach(function(node){\n    const raw = node.nodeValue;\n    const trimmed = raw.trim();\n    if (map[trimmed]) node.nodeValue = raw.replace(trimmed, map[trimmed]);\n    else if (trimmed.includes('Accel Thinking')) node.nodeValue = raw.replace(\/Accel Thinking\/g, '\u52a0\u901f\u5ea6\u601d\u7ef4');\n  });\n  document.querySelectorAll('.ati-home h2,.ati-home h3,.ati-home p,.ati-home a,.ati-home span,.ati-home strong,.ati-home b,.ati-home small,.ati-home li,.ati-page h2,.ati-page h3,.ati-page p,.ati-page a,.ati-page span,.ati-page strong,.ati-page b,.ati-page small,.ati-page li').forEach(function(el){\n    if (el.closest('pre,code,script,style,textarea') || el.querySelector('pre,code,script,style,textarea')) return;\n    const key = el.textContent.trim().replace(\/\\s+\/g, ' ');\n    const compactKey = key.replace(\/\\s+\/g, '');\n    if (map[key]) el.textContent = map[key];\n    else if (map[compactKey]) el.textContent = map[compactKey];\n  });\n  document.querySelectorAll('input[placeholder], textarea[placeholder], option, label').forEach(function(el){\n    const text = (el.textContent || el.getAttribute('placeholder') || '').trim();\n    if (map[text]) {\n      if (el.hasAttribute('placeholder')) el.setAttribute('placeholder', map[text]);\n      else el.textContent = map[text];\n    }\n  });\n})();\n<\/script><br \/>\n<script data-source=\"ati_staging_zh_final_cleanup\">\n(function(){\n  if (!location.pathname.toLowerCase().includes('\/zh_cn')) return;\n  document.querySelectorAll('.ati-side strong').forEach(function(el){\n    if (\/Read\\s*Practice\\s*Review\/i.test(el.textContent)) el.innerHTML = '\u9605\u8bfb<br \/>\u7ec3\u4e60<br \/>\u590d\u76d8';\n  });\n  if (location.pathname.includes('\/resources\/')) {\n    const h1 = document.querySelector('.ati-hero h1');\n    if (h1) h1.textContent = '\u52a0\u901f\u5ea6\u601d\u7ef4\u8d44\u6e90\u4e0e\u6587\u7ae0';\n    const label = document.querySelector('.ati-hero .ati-label');\n    if (label && \/CONTENT HUB\/i.test(label.textContent)) label.textContent = '\u5185\u5bb9\u4e2d\u5fc3';\n    const sideStrong = document.querySelector('.ati-hero .ati-side strong');\n    if (sideStrong) sideStrong.innerHTML = 'CCC \u9898\u76ee<br \/>Python \u7b14\u8bb0<br \/>AI \u7d20\u517b';\n    document.querySelectorAll('.ati-page p,.ati-page h2,.ati-page h3,.ati-page span,.ati-page b,.ati-page small').forEach(function(el){\n      const t = el.textContent.trim().replace(\/\\s+\/g, ' ');\n      if (t.includes('Explore the public content library behind')) el.textContent = '\u6d4f\u89c8\u52a0\u901f\u5ea6\u601d\u7ef4\u7684\u516c\u5f00\u5185\u5bb9\u5e93\uff1a\u9762\u5411\u5b66\u751f\u3001\u5bb6\u957f\u548c\u6559\u80b2\u8005\u7684 CCC \u9898\u76ee\u89e3\u6790\u3001Python \u5b66\u4e60\u7b14\u8bb0\u4e0e AI \u7d20\u517b\u6587\u7ae0\u3002';\n      else if (t.includes('Start from a topic channel')) el.textContent = '\u4ece\u4e3b\u9898\u9891\u9053\u8fdb\u5165\uff0c\u9605\u8bfb\u6700\u65b0\u6587\u7ae0\uff0c\u6216\u6d4f\u89c8\u5b8c\u6574\u5f52\u6863\u3002';\n      else if (t.includes('These three channels are the first public content streams')) el.textContent = '\u8fd9\u4e09\u4e2a\u9891\u9053\u662f\u52a0\u901f\u5ea6\u601d\u7ef4\u7b2c\u4e00\u6279\u516c\u5f00\u5185\u5bb9\u6d41\u3002\u6bcf\u4e2a\u9891\u9053\u90fd\u4f1a\u9010\u6b65\u53d1\u5c55\u6210\u53ef\u641c\u7d22\u3001\u53ef\u590d\u7528\u7684\u5b66\u4e60\u8d44\u6599\u5e93\u3002';\n      else if (t.includes('Guidance on responsible AI use')) el.textContent = '\u5173\u4e8e\u8d1f\u8d23\u4efb\u4f7f\u7528 AI\u3001\u5b66\u751f\u5b66\u4e60\u4e0e\u5bb6\u957f\u5e38\u89c1\u95ee\u9898\u7684\u5b9e\u7528\u6307\u5bfc\u3002';\n      else if (t === 'CCC Problems') el.textContent = 'CCC \u9898\u76ee';\n      else if (t === 'Python Notes') el.textContent = 'Python \u7b14\u8bb0';\n      else if (t === 'CONTENT HUB') el.textContent = '\u5185\u5bb9\u4e2d\u5fc3';\n      else if (t === 'PYTHON') el.textContent = 'PYTHON';\n      else if (t === 'CCC 2026 J4 \u2013 Snail Path Solution & Analysis') el.textContent = 'CCC 2026 J4 - Snail Path \u89e3\u9898\u4e0e\u5206\u6790';\n    });\n  }\n})();\n<\/script><\/p>\n<style data-source=\"ati_article_share_tools\">\n.ati-share-tools{margin:0 0 30px!important;padding:20px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}\n.ati-share-tools p{margin:0!important}\n.ati-share-tools .ati-share-kicker{color:#b47c00!important;font-size:13px!important;font-weight:900!important;text-transform:uppercase;letter-spacing:.08em}\n.ati-share-note{margin-top:6px!important;color:#475569!important;font-size:15px!important;line-height:1.45!important}\n.ati-share-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}\n.ati-share-actions button,.ati-share-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 13px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a!important;font:inherit;font-size:13px;font-weight:900;line-height:1;cursor:pointer;text-decoration:none!important}\n.ati-share-actions button:hover,.ati-share-actions a:hover{border-color:#ffc400;background:#fff7d6}\n.ati-share-actions [data-share-copy-link],.ati-share-actions [data-share-native]{background:#ffc400;border-color:#ffc400;color:#050505!important}\n.ati-share-qr{display:flex;gap:14px;align-items:center;margin-top:16px;padding:14px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}\n.ati-share-qr[hidden]{display:none!important}.ati-share-qr img{width:118px;height:118px;border-radius:6px}.ati-share-qr p{color:#475569!important;font-size:14px!important;line-height:1.4!important}\n.ati-share-status{min-height:18px;margin-top:10px!important;color:#0f766e!important;font-size:13px!important;font-weight:800!important}\n@media(max-width:640px){.ati-share-actions button,.ati-share-actions a{width:100%}.ati-share-qr{align-items:flex-start}.ati-share-qr img{width:104px;height:104px}}\n<\/style>\n<p><script data-source=\"ati_article_share_tools\">\n(function(){\n  function text(isZh, en, zh){ return isZh ? zh : en; }\n  function copyText(value, status, message){\n    function done(){ if(status) status.textContent = message; }\n    function fallback(){\n      var input = document.createElement('textarea');\n      input.value = value;\n      input.setAttribute('readonly', '');\n      input.style.position = 'fixed';\n      input.style.left = '-9999px';\n      document.body.appendChild(input);\n      input.select();\n      try { document.execCommand('copy'); } catch(e) {}\n      document.body.removeChild(input);\n      done();\n    }\n    if (navigator.clipboard && navigator.clipboard.writeText) {\n      navigator.clipboard.writeText(value).then(done).catch(fallback);\n    } else fallback();\n  }\n  document.querySelectorAll('[data-ati-share]').forEach(function(box){\n    if (box.dataset.ready) return;\n    box.dataset.ready = '1';\n    var isZh = location.pathname.toLowerCase().includes('\/zh_cn\/');\n    var pageUrl = location.origin + location.pathname;\n    var title = (document.querySelector('.ati-hero h1') || document.querySelector('h1'))?.innerText.trim() || document.title.replace(\/\\s+-\\s+.*$\/, '');\n    var status = box.querySelector('[data-share-status]');\n    var note = box.querySelector('.ati-share-note');\n    var kicker = box.querySelector('.ati-share-kicker');\n    var qrText = box.querySelector('.ati-share-qr p');\n    if (isZh) {\n      kicker.textContent = '\u5206\u4eab\u8fd9\u7bc7\u6587\u7ae0';\n      note.textContent = '\u590d\u5236\u94fe\u63a5\u3001\u8c03\u7528\u624b\u673a\u5206\u4eab\u9762\u677f\u3001\u7528\u5fae\u4fe1\u626b\u7801\uff0c\u6216\u901a\u8fc7\u90ae\u4ef6\u53d1\u9001\u3002';\n      qrText.textContent = '\u7528\u5fae\u4fe1\u626b\u7801\u540e\uff0c\u53ef\u5c06\u6587\u7ae0\u94fe\u63a5\u8f6c\u53d1\u7ed9\u597d\u53cb\u6216\u7fa4\u804a\u3002';\n    }\n    var labels = {\n      '[data-share-native]': text(isZh, 'Share', '\u7cfb\u7edf\u5206\u4eab'),\n      '[data-share-copy-link]': text(isZh, 'Copy Link', '\u590d\u5236\u94fe\u63a5'),\n      '[data-share-wechat]': text(isZh, 'WeChat QR', '\u5fae\u4fe1\u4e8c\u7ef4\u7801')\n    };\n    Object.keys(labels).forEach(function(sel){ var el = box.querySelector(sel); if(el) el.textContent = labels[sel]; });\n    var email = box.querySelector('[data-share-email]');\n    if (email) email.href = 'mailto:?subject=' + encodeURIComponent(title) + '&body=' + encodeURIComponent(title + '\\n\\n' + pageUrl);\n    var qrImg = box.querySelector('[data-share-qr-img]');\n    if (qrImg) qrImg.src = 'https:\/\/api.qrserver.com\/v1\/create-qr-code\/?size=180x180&data=' + encodeURIComponent(pageUrl);\n    var nativeBtn = box.querySelector('[data-share-native]');\n    if (nativeBtn) nativeBtn.addEventListener('click', function(){\n      if (navigator.share) {\n        navigator.share({title:title, url:pageUrl}).catch(function(){});\n      } else {\n        copyText(pageUrl, status, text(isZh, 'Link copied. You can paste it into any app.', '\u94fe\u63a5\u5df2\u590d\u5236\uff0c\u53ef\u7c98\u8d34\u5230\u4efb\u610f\u5e94\u7528\u3002'));\n      }\n    });\n    var copyBtn = box.querySelector('[data-share-copy-link]');\n    if (copyBtn) copyBtn.addEventListener('click', function(){\n      copyText(pageUrl, status, text(isZh, 'Link copied.', '\u94fe\u63a5\u5df2\u590d\u5236\u3002'));\n    });\n    var qrBtn = box.querySelector('[data-share-wechat]');\n    if (qrBtn) qrBtn.addEventListener('click', function(){\n      var qr = box.querySelector('[data-share-qr]');\n      if (qr) qr.hidden = !qr.hidden;\n    });\n  });\n})();\n<\/script><\/p>\n<style data-source=\"ati_article_feedback_cta\">\n.ati-feedback-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:34px 0 24px;padding:22px 24px;border:1px solid #e2e8f0;border-left:4px solid #ffc400;border-radius:8px;background:#f8fafc}\n.ati-feedback-copy{min-width:0}.ati-feedback-cta p{margin:0!important}.ati-feedback-title{color:#0f172a!important;font-size:20px!important;font-weight:900!important;line-height:1.25!important}.ati-feedback-note{max-width:650px;margin-top:7px!important;color:#475569!important;font-size:15px!important;line-height:1.55!important}\n.ati-feedback-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:44px;padding:0 18px;border:1px solid #ffc400;border-radius:7px;background:#ffc400;color:#050505!important;font-size:14px;font-weight:900;text-decoration:none!important;transition:background .18s ease,border-color .18s ease,transform .18s ease}\n.ati-feedback-button:hover{border-color:#d69e00;background:#ffd84d;transform:translateY(-1px)}\n@media(max-width:700px){.ati-feedback-cta{align-items:stretch;flex-direction:column;padding:20px}.ati-feedback-button{width:100%}}\n<\/style>\n<p><script data-source=\"ati_article_feedback_cta\">\n(function(){\n  var isZh = location.pathname.indexOf('\/zh_cn\/') !== -1;\n  document.querySelectorAll('[data-ati-feedback]').forEach(function(box){\n    var heading = box.querySelector('.ati-feedback-title');\n    var note = box.querySelector('.ati-feedback-note');\n    var link = box.querySelector('[data-ati-feedback-link]');\n    var articleHeading = document.querySelector('.ati-hero h1') || document.querySelector('h1');\n    var articleTitle = articleHeading ? articleHeading.textContent.replace(\/\\s+\/g, ' ').trim() : document.title;\n    if (isZh) {\n      heading.textContent = '\u6709\u95ee\u9898\u6216\u5efa\u8bae\uff1f';\n      note.textContent = '\u5982\u679c\u4f60\u5bf9\u672c\u6587\u6709\u7591\u95ee\uff0c\u6216\u5e0c\u671b\u63d0\u51fa\u6539\u8fdb\u5efa\u8bae\uff0c\u8bf7\u7ed9\u6211\u4eec\u53d1\u9001\u79c1\u5bc6\u7559\u8a00\u3002';\n      link.textContent = '\u53d1\u9001\u53cd\u9988';\n    }\n    var contactPath = isZh ? '\/zh_cn\/contact\/' : '\/contact\/';\n    link.href = contactPath + '?ati_source=article&article_title=' + encodeURIComponent(articleTitle) + '&article_url=' + encodeURIComponent(location.href.split('#')[0]) + '#wpforms-form-76';\n  });\n})();\n<\/script><\/p>\n<style data-source=\"ati_ccc_2025_j5_article_assets\">\n.ati-post-article pre{margin:18px 0 24px!important;padding:18px 20px!important;overflow:auto;border:1px solid #263244;border-radius:8px;background:#0f172a!important;color:#e5e7eb!important;font-size:14px!important;line-height:1.55!important}\n.ati-post-article pre code{display:block;padding:0!important;background:transparent!important;color:inherit!important;white-space:pre!important}\n.ati-post-article code{padding:.14em .34em;border-radius:4px;background:#eef2f7;color:#0f172a;font-size:.92em}\n.ati-post-article ol{margin:12px 0 22px!important;padding-left:24px!important;color:#334155}\n.ati-post-article ol li{margin:8px 0!important;line-height:1.65!important}\n.ati-hero h1 .ati-word:not(:last-child){margin-right:0}\n<\/style>\n<p><script data-source=\"ati_ccc_2025_j5_zh_20260627\">\n(function(){\n  if (location.pathname.indexOf('\/zh_cn\/') !== 0) return;\n  var data = {\"title\": \"CCC 2025 J5 - Connecting Territories \u89e3\u9898\u4e0e\u5206\u6790\", \"subtitle\": \"\u4f7f\u7528\u52a8\u6001\u89c4\u5212\u3001\u5c40\u90e8\u76f8\u90bb\u72b6\u6001\u8f6c\u79fb\u548c\u6eda\u52a8\u6570\u7ec4\uff0c\u5728\u5faa\u73af\u8d39\u7528\u7684\u683c\u5b50\u5730\u56fe\u4e2d\u5bfb\u627e\u6700\u5c0f\u603b\u4ee3\u4ef7\u8def\u5f84\u3002\", \"date\": \"2026 \u5e74 6 \u6708 27 \u65e5\", \"articleHtmlB64\": \"PGgyPuaRmOimgTwvaDI+CjxwPui\/memBk+mimOimgeaxguaIkeS7rOWcqOS4gOS4qiA8Y29kZT5SIHggQzwvY29kZT4g55qE5qC85a2Q5Zyw5Zu+5Lit77yM5q+P5LiA6KGM6YCJ5oup5LiA5Liq5qC85a2Q77yM5bm25LiU55u46YK75Lik6KGM6YCJ5oup55qE5qC85a2Q5b+F6aG755u46YK777yM5YyF5ous5bem5LiK44CB5q2j5LiK44CB5Y+z5LiK6L+Z5LiJ56eN6L+e5o6l5pa55byP44CC5q+P5Liq5qC85a2Q5pyJ5LiA5Liq5oyJ54Wn6KGM5LyY5YWI6aG65bqP5b6q546v5Ye6546w55qE6LS555So77yM55uu5qCH5piv5LuO56ys5LiA6KGM6LWw5Yiw5pyA5ZCO5LiA6KGM77yM5L2\/5oC76LS555So5pyA5bCP44CCPC9wPgo8cD7moLjlv4Pmlrnms5XmmK\/liqjmgIHop4TliJLvvJrorrDlvZXliLDovr7lvZPliY3ooYzmr4\/kuIDliJfnmoTmnIDlsI\/mgLvku6Pku7fvvIznhLblkI7pgJDooYzmm7TmlrDjgILnlLHkuo7mr4\/kuIDooYzlj6rkvp3otZbkuIrkuIDooYzvvIzmiYDku6Xlj6\/ku6XnlKjmu5rliqjmlbDnu4Tmiornqbrpl7TkvJjljJbliLAgPGNvZGU+TyhDKTwvY29kZT7jgII8L3A+CjxoMj7nkIbop6Ppl67popg8L2gyPgo8cD7popjnm67nu5nlh7rkuIDkuKogPGNvZGU+UiB4IEM8L2NvZGU+IOeahCBncmlk44CC5oiR5Lus6ZyA6KaB5LuO56ys5LiA6KGM5byA5aeL77yM5Yiw5pyA5ZCO5LiA6KGM57uT5p2f77yM5bm25LiU5q+P5LiA6KGM5b+F6aG75Yia5aW96YCJ5oup5LiA5LiqIHRpbGXjgII8L3A+CjxwPuS7juS4iuS4gOihjOeahOafkOS4gOWIlyA8Y29kZT5qPC9jb2RlPiDotbDliLDkuIvkuIDooYzml7bvvIzlj6rog73otbDliLDvvJo8L3A+Cjx1bD4KICA8bGk+PGNvZGU+aiAtIDE8L2NvZGU+PC9saT4KICA8bGk+PGNvZGU+ajwvY29kZT48L2xpPgogIDxsaT48Y29kZT5qICsgMTwvY29kZT48L2xpPgo8L3VsPgo8cD7kuZ\/lsLHmmK\/or7TvvIzkuIvkuIDooYzpgInmi6nnmoQgdGlsZSDlv4XpobvlkozkuIrkuIDooYzpgInmi6nnmoQgdGlsZSDpgJrov4fovrnmiJbop5Lnm7jpgrvjgII8L3A+CjxwPuavj+S4qiB0aWxlIOeahOi0ueeUqOS4jeaYr+WNleeLrOe7meWHuueahO+8jOiAjOaYr+aMieeFpyByb3ctbWFqb3Igb3JkZXIg55Sf5oiQ77yaPC9wPgo8cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS10ZXh0Ij4xLCAyLCAzLCAuLi4sIE0sIDEsIDIsIDMsIC4uLiwgTSwgLi4uPC9jb2RlPjwvcHJlPgo8cD7lpoLmnpzkvb\/nlKggMC1iYXNlZCDlnZDmoIfvvIzkvY3kuo7nrKwgPGNvZGU+cjwvY29kZT4g6KGM44CB56ysIDxjb2RlPmM8L2NvZGU+IOWIl+eahCB0aWxl77yM5Zyo5pW05LiqIGdyaWQg5Lit55qE57yW5Y+35piv77yaPC9wPgo8cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS10ZXh0Ij5pbmRleCA9IHIgKiBDICsgYzwvY29kZT48L3ByZT4KPHA+5Zug5q2k5a6D55qE6LS555So5piv77yaPC9wPgo8cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS10ZXh0Ij5jb3N0KHIsIGMpID0gKGluZGV4ICUgTSkgKyAxPC9jb2RlPjwvcHJlPgo8cD7popjnm67opoHmiJHku6zovpPlh7rkuIDmnaHlkIjms5Xot6\/lvoTnmoTmnIDlsI\/otLnnlKjmgLvlkozjgII8L3A+CjxoMj7nm7jlhbPnmoTmlbDmja7nu5PmnoTlkoznrpfms5Xnn6Xor4bngrk8L2gyPgo8dWw+CiAgPGxpPkR5bmFtaWMgUHJvZ3JhbW1pbmc8L2xpPgo8L3VsPgo8cD7nlKjnirbmgIHooajnpLrigJzliLDovr7mn5DkuIDooYzmn5DkuIDliJfnmoTmnIDlsI\/mgLvotLnnlKjigJ3jgII8L3A+Cjx1bD4KICA8bGk+U3RhdGUgVHJhbnNpdGlvbjwvbGk+CjwvdWw+CjxwPuW9k+WJjeagvOWtkOWPquiDveS7juS4iuS4gOihjOeahOebuOmCu+S4ieWIl+i9rOenu+i\/h+adpeOAgjwvcD4KPHVsPgogIDxsaT5Sb2xsaW5nIEFycmF5PC9saT4KPC91bD4KPHA+5b2T5YmN6KGM5Y+q5L6d6LWW5LiK5LiA6KGM77yM5Zug5q2k5LiN6ZyA6KaB5L+d5a2Y5pW05LiqIDxjb2RlPlIgeCBDPC9jb2RlPiDnmoQgRFAg6KGo44CCPC9wPgo8dWw+CiAgPGxpPkdyaWQgUGF0aCBPcHRpbWl6YXRpb248L2xpPgo8L3VsPgo8cD7ov5nmmK\/lhbjlnovnmoTku47kuIrkuIDlsYLlsYDpg6jpgrvlsYXovaznp7vliLDkuIvkuIDlsYLnmoQgZ3JpZCBEUOOAgjwvcD4KPGgyPuWKqOaAgeinhOWIkuaAnei3rzwvaDI+CjxwPuWumuS5ie+8mjwvcD4KPHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtdGV4dCI+ZHBbcl1bal0gPSDliLDovr7nrKwgciDooYzjgIHnrKwgaiDliJfml7bnmoTmnIDlsI\/mgLvotLnnlKg8L2NvZGU+PC9wcmU+CjxwPuesrOS4gOihjOaYryBiYXNlIGNhc2XvvJo8L3A+CjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLXRleHQiPmRwWzBdW2pdID0gY29zdCgwLCBqKTwvY29kZT48L3ByZT4KPHA+5LuO56ys5LqM6KGM5byA5aeL77yM5b2T5YmN5qC85a2Q5Y+v5Lul5LuO5LiK5LiA6KGM55qEIDxjb2RlPmogLSAxPC9jb2RlPuOAgTxjb2RlPmo8L2NvZGU+44CBPGNvZGU+aiArIDE8L2NvZGU+IOS4ieS4quS9jee9rui\/h+adpeOAgjwvcD4KPHA+5omA5Lul77yaPC9wPgo8cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS10ZXh0Ij5kcFtyXVtqXSA9IGNvc3QociwgaikgKyBtaW4oCiAgICBkcFtyIC0gMV1baiAtIDFdLAogICAgZHBbciAtIDFdW2pdLAogICAgZHBbciAtIDFdW2ogKyAxXQopPC9jb2RlPjwvcHJlPgo8cD7lvZPnhLbvvIzlpoLmnpwgPGNvZGU+aiAtIDE8L2NvZGU+IOaIliA8Y29kZT5qICsgMTwvY29kZT4g6LaF5Ye66L6555WM77yM5bCx5LiN6IO95L2\/55So44CCPC9wPgo8cD7mnIDlkI7nrZTmoYjmmK\/mnIDlkI7kuIDooYzmiYDmnInliJfkuK3nmoTmnIDlsI\/lgLzvvJo8L3A+CjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLXRleHQiPmFuc3dlciA9IG1pbihkcFtSIC0gMV1bal0pPC9jb2RlPjwvcHJlPgo8aDI+5Li65L2V55So5rua5Yqo5pWw57uEPC9oMj4KPHA+5aaC5p6c55u05o6l5bu656uL5a6M5pW055qE5LqM57u0IERQIOihqO+8jOepuumXtOaYr++8mjwvcD4KPHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtdGV4dCI+TyhSICogQyk8L2NvZGU+PC9wcmU+CjxwPuS9huWunumZheS4iu+8jOiuoeeul+esrCA8Y29kZT5yPC9jb2RlPiDooYzml7bvvIzlj6rpnIDopoHnrKwgPGNvZGU+ciAtIDE8L2NvZGU+IOihjOOAgjwvcD4KPHA+5omA5Lul5oiR5Lus5Y+v5Lul5Y+q5L+d55WZ5Lik5Liq5pWw57uE77yaPC9wPgo8dWw+CiAgPGxpPjxjb2RlPnByZXZbal08L2NvZGU+77ya5LiK5LiA6KGM5Yiw6L6+56ysIDxjb2RlPmo8L2NvZGU+IOWIl+eahOacgOWwj+i0ueeUqDwvbGk+CiAgPGxpPjxjb2RlPmN1cltqXTwvY29kZT7vvJrlvZPliY3ooYzliLDovr7nrKwgPGNvZGU+ajwvY29kZT4g5YiX55qE5pyA5bCP6LS555SoPC9saT4KPC91bD4KPHA+566X5a6M5LiA6KGM5LmL5ZCO77yM5Lqk5o2i5a6D5Lus77yaPC9wPgo8cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS10ZXh0Ij5wcmV2LCBjdXIgPSBjdXIsIHByZXY8L2NvZGU+PC9wcmU+CjxwPui\/meagt+epuumXtOWwseWPmOaIkO+8mjwvcD4KPHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtdGV4dCI+TyhDKTwvY29kZT48L3ByZT4KPGgyPuiuoeeul+agvOWtkOaIkOacrDwvaDI+CjxwPuS4gOS4quWuueaYk+WHuumUmeeahOWcsOaWueaYryB0aWxlIGNvc3Qg55qE55Sf5oiQ44CCPC9wPgo8cD7otLnnlKjmmK\/mjInnhafmlbTkuKogZ3JpZCDnmoQgcm93LW1ham9yIG9yZGVyIOW+queOr+eUn+aIkO+8jOiAjOS4jeaYr+avj+S4gOihjOmDvemHjeaWsOS7jiAxIOW8gOWni+OAgjwvcD4KPHA+5L6L5aaC5aaC5p6cIDxjb2RlPkMgPSA0LCBNID0gNTwvY29kZT7vvIzotLnnlKjluo\/liJfmmK\/vvJo8L3A+CjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLXRleHQiPnJvdyAwOiAxIDIgMyA0CnJvdyAxOiA1IDEgMiAzCnJvdyAyOiA0IDUgMSAyCi4uLjwvY29kZT48L3ByZT4KPHA+5Zug5q2k5q+P5LiA6KGM55qE5byA5aS06LS555So5Lya6ZqP552AIDxjb2RlPkM8L2NvZGU+IOWQkeWJjeaOqOi\/m+OAgjwvcD4KPHA+5Luj56CB5Lit5L2\/55So77yaPC9wPgo8cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS10ZXh0Ij5yb3dfc3RhcnQgPSAoKHJvd19zdGFydCAtIDEgKyBDKSAlIE0pICsgMTwvY29kZT48L3ByZT4KPHA+5p2l6K6h566X5LiL5LiA6KGM56ys5LiA5LiqIHRpbGUg55qE6LS555So44CCPC9wPgo8cD7kuYvlkI7mr4\/kuIDliJflkJHlj7Pnp7vliqjml7bvvIzotLnnlKjnu6fnu63liqAgMe+8jOi2hei\/hyA8Y29kZT5NPC9jb2RlPiDlkI7lm57liLAgMeOAgjwvcD4KPGgyPlB5dGhvbuino+mimOaWueahiDwvaDI+CjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLXB5dGhvbiI+IyBDQ0MgMjAyNSBKNSAtIENvbm5lY3RpbmcgVGVycml0b3JpZXMKIyBEeW5hbWljIFByb2dyYW1taW5nIHdpdGggcm9sbGluZyBhcnJheXMKIyBUaW1lOiAgTyhSICogQykKIyBTcGFjZTogTyhDKQoKUiA9IGludChpbnB1dCgpKQpDID0gaW50KGlucHV0KCkpCk0gPSBpbnQoaW5wdXQoKSkKCiMgcHJldltqXSA9IGJlc3QgY29zdCB0byByZWFjaCBjb2x1bW4gaiBpbiB0aGUgcHJldmlvdXMgcm93CnByZXYgPSBbMF0gKiBDCmN1ciA9IFswXSAqIEMKCiMgUm93IDAgY29zdHM6IDEsIDIsIDMsIC4uLiwgTSwgMSwgMiwgLi4uCnYgPSAxCmZvciBqIGluIHJhbmdlKEMpOgogICAgcHJldltqXSA9IHYKICAgIHYgKz0gMQogICAgaWYgdiA9PSBNICsgMToKICAgICAgICB2ID0gMQoKIyByb3dfc3RhcnQgaXMgdGhlIGZpcnN0IHRpbGUgdmFsdWUgaW4gdGhlIGN1cnJlbnQgcm93LgojIFJvdyAwIHN0YXJ0cyBhdCAxLiBFYWNoIG5leHQgcm93IGFkdmFuY2VzIGJ5IEMgcG9zaXRpb25zLgpyb3dfc3RhcnQgPSAxCgpmb3IgciBpbiByYW5nZSgxLCBSKToKICAgIHJvd19zdGFydCA9ICgocm93X3N0YXJ0IC0gMSArIEMpICUgTSkgKyAxCiAgICB2ID0gcm93X3N0YXJ0CgogICAgaWYgQyA9PSAxOgogICAgICAgICMgT25seSBvbmUgY29sdW1uOiBtdXN0IGdvIHN0cmFpZ2h0IGRvd24KICAgICAgICBjdXJbMF0gPSBwcmV2WzBdICsgdgogICAgZWxzZToKICAgICAgICAjIEZpcnN0IGNvbHVtbjogY2FuIG9ubHkgY29tZSBmcm9tIHByZXZbMF0gb3IgcHJldlsxXQogICAgICAgIGJlc3QgPSBtaW4ocHJldlswXSwgcHJldlsxXSkKICAgICAgICBjdXJbMF0gPSBiZXN0ICsgdgoKICAgICAgICB2ICs9IDEKICAgICAgICBpZiB2ID09IE0gKyAxOgogICAgICAgICAgICB2ID0gMQoKICAgICAgICAjIE1pZGRsZSBjb2x1bW5zCiAgICAgICAgZm9yIGogaW4gcmFuZ2UoMSwgQyAtIDEpOgogICAgICAgICAgICBiZXN0ID0gbWluKHByZXZbaiAtIDFdLCBwcmV2W2pdLCBwcmV2W2ogKyAxXSkKICAgICAgICAgICAgY3VyW2pdID0gYmVzdCArIHYKCiAgICAgICAgICAgIHYgKz0gMQogICAgICAgICAgICBpZiB2ID09IE0gKyAxOgogICAgICAgICAgICAgICAgdiA9IDEKCiAgICAgICAgIyBMYXN0IGNvbHVtbjogY2FuIG9ubHkgY29tZSBmcm9tIHByZXZbQyAtIDJdIG9yIHByZXZbQyAtIDFdCiAgICAgICAgYmVzdCA9IG1pbihwcmV2W0MgLSAyXSwgcHJldltDIC0gMV0pCiAgICAgICAgY3VyW0MgLSAxXSA9IGJlc3QgKyB2CgogICAgcHJldiwgY3VyID0gY3VyLCBwcmV2CgpwcmludChtaW4ocHJldikpPC9jb2RlPjwvcHJlPgo8aDI+QysrIOino+mimOaWueahiDwvaDI+CjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLWNwcCI+I2luY2x1ZGUgJmx0O2lvc3RyZWFtJmd0OwojaW5jbHVkZSAmbHQ7dmVjdG9yJmd0OwojaW5jbHVkZSAmbHQ7YWxnb3JpdGhtJmd0OwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIENDQyAyMDI1IEo1IC0gQ29ubmVjdGluZyBUZXJyaXRvcmllcwovLyBEeW5hbWljIFByb2dyYW1taW5nIHdpdGggcm9sbGluZyBhcnJheXMKLy8gVGltZTogIE8oUiAqIEMpCi8vIFNwYWNlOiBPKEMpCgppbnQgbWFpbigpIHsKICAgIGludCBSLCBDLCBNOwogICAgY2luICZndDsmZ3Q7IFIgJmd0OyZndDsgQyAmZ3Q7Jmd0OyBNOwoKICAgIHZlY3RvciZsdDtsb25nIGxvbmcmZ3Q7IHByZXYoQywgMCksIGN1cihDLCAwKTsKCiAgICAvLyBSb3cgMCBjb3N0czogMSwgMiwgMywgLi4uLCBNLCAxLCAyLCAuLi4KICAgIGludCB2ID0gMTsKICAgIGZvciAoaW50IGogPSAwOyBqICZsdDsgQzsgaisrKSB7CiAgICAgICAgcHJldltqXSA9IHY7CiAgICAgICAgdisrOwogICAgICAgIGlmICh2ID09IE0gKyAxKSB2ID0gMTsKICAgIH0KCiAgICAvLyByb3dfc3RhcnQgaXMgdGhlIGZpcnN0IHRpbGUgdmFsdWUgaW4gdGhlIGN1cnJlbnQgcm93LgogICAgLy8gUm93IDAgc3RhcnRzIGF0IDEuIEVhY2ggbmV4dCByb3cgYWR2YW5jZXMgYnkgQyBwb3NpdGlvbnMuCiAgICBpbnQgcm93X3N0YXJ0ID0gMTsKCiAgICBmb3IgKGludCByID0gMTsgciAmbHQ7IFI7IHIrKykgewogICAgICAgIHJvd19zdGFydCA9ICgocm93X3N0YXJ0IC0gMSArIEMpICUgTSkgKyAxOwogICAgICAgIHYgPSByb3dfc3RhcnQ7CgogICAgICAgIGlmIChDID09IDEpIHsKICAgICAgICAgICAgLy8gT25seSBvbmUgY29sdW1uOiBtdXN0IGdvIHN0cmFpZ2h0IGRvd24KICAgICAgICAgICAgY3VyWzBdID0gcHJldlswXSArIHY7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gRmlyc3QgY29sdW1uOiBjYW4gb25seSBjb21lIGZyb20gcHJldlswXSBvciBwcmV2WzFdCiAgICAgICAgICAgIGxvbmcgbG9uZyBiZXN0ID0gbWluKHByZXZbMF0sIHByZXZbMV0pOwogICAgICAgICAgICBjdXJbMF0gPSBiZXN0ICsgdjsKCiAgICAgICAgICAgIHYrKzsKICAgICAgICAgICAgaWYgKHYgPT0gTSArIDEpIHYgPSAxOwoKICAgICAgICAgICAgLy8gTWlkZGxlIGNvbHVtbnMKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogJmx0OyBDIC0gMTsgaisrKSB7CiAgICAgICAgICAgICAgICBiZXN0ID0gbWluKHByZXZbaiAtIDFdLCBtaW4ocHJldltqXSwgcHJldltqICsgMV0pKTsKICAgICAgICAgICAgICAgIGN1cltqXSA9IGJlc3QgKyB2OwoKICAgICAgICAgICAgICAgIHYrKzsKICAgICAgICAgICAgICAgIGlmICh2ID09IE0gKyAxKSB2ID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gTGFzdCBjb2x1bW46IGNhbiBvbmx5IGNvbWUgZnJvbSBwcmV2W0MgLSAyXSBvciBwcmV2W0MgLSAxXQogICAgICAgICAgICBiZXN0ID0gbWluKHByZXZbQyAtIDJdLCBwcmV2W0MgLSAxXSk7CiAgICAgICAgICAgIGN1cltDIC0gMV0gPSBiZXN0ICsgdjsKICAgICAgICB9CgogICAgICAgIHByZXYuc3dhcChjdXIpOwogICAgfQoKICAgIGNvdXQgJmx0OyZsdDsgKm1pbl9lbGVtZW50KHByZXYuYmVnaW4oKSwgcHJldi5lbmQoKSkgJmx0OyZsdDsgJnF1b3Q7XG4mcXVvdDs7CiAgICByZXR1cm4gMDsKfTwvY29kZT48L3ByZT4KPGgyPuWkjeadguW6puWIhuaekDwvaDI+CjxwPuiuviBncmlkIOaciSA8Y29kZT5SPC9jb2RlPiDooYzjgIE8Y29kZT5DPC9jb2RlPiDliJfjgII8L3A+CjxwPuavj+S4gOihjOmcgOimgeiuoeeulyA8Y29kZT5DPC9jb2RlPiDkuKrnirbmgIHvvIzmgLvlhbHmnIkgPGNvZGU+UjwvY29kZT4g6KGM44CCPC9wPgo8cD7miYDku6Xml7bpl7TlpI3mnYLluqbmmK\/vvJo8L3A+CjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLXRleHQiPk8oUiAqIEMpPC9jb2RlPjwvcHJlPgo8cD7lm6DkuLrlj6rkv53lrZjkuIrkuIDooYzlkozlvZPliY3ooYzkuKTkuKrplb\/luqbkuLogPGNvZGU+QzwvY29kZT4g55qE5pWw57uE77yM5omA5Lul56m66Ze05aSN5p2C5bqm5piv77yaPC9wPgo8cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS10ZXh0Ij5PKEMpPC9jb2RlPjwvcHJlPgo8aDI+5bi46KeB6ZSZ6K+vPC9oMj4KPHVsPgogIDxsaT7mr4\/kuIDooYzpg73miorotLnnlKjph43mlrDku44gMSDlvIDlp4s8L2xpPgo8L3VsPgo8cD7ov5nmmK\/mnIDluLjop4HplJnor6\/jgILotLnnlKjluo\/liJfmmK\/mjInnhafmlbTkuKogZ3JpZCDov57nu63lvqrnjq\/nmoTvvIzkuI3mmK\/mr4\/kuIDooYzph43nva7jgII8L3A+Cjx1bD4KICA8bGk+5b+Y6K6w5aSE55CG6L6555WM5YiXPC9saT4KPC91bD4KPHA+56ys5LiA5YiX5LiN6IO95LuOIDxjb2RlPmogLSAxPC9jb2RlPiDmnaXvvIzmnIDlkI7kuIDliJfkuI3og73ku44gPGNvZGU+aiArIDE8L2NvZGU+IOadpeOAgjwvcD4KPHVsPgogIDxsaT7lv5jorrDlpITnkIYgPGNvZGU+QyA9PSAxPC9jb2RlPjwvbGk+CjwvdWw+CjxwPuWmguaenOWPquacieS4gOWIl++8jOmCo+S5iOavj+S4gOihjOWPquiDveebtOedgOW+gOS4i+i1sO+8jOS4jeiDveiuv+mXriA8Y29kZT5wcmV2WzFdPC9jb2RlPiDmiJYgPGNvZGU+cHJldltDIC0gMl08L2NvZGU+44CCPC9wPgo8dWw+CiAgPGxpPuS9v+eUqOWujOaVtOS6jOe7tOaVsOe7hOWvvOiHtOepuumXtOa1qui0uTwvbGk+CjwvdWw+CjxwPuS6jOe7tCBEUCDmmK\/lj6\/ku6XnkIbop6PnmoTvvIzkvYblrp7pmYXlrp7njrDkuK3mu5rliqjmlbDnu4Tmm7TpgILlkIjjgII8L3A+Cjx1bD4KICA8bGk+55SoIDxjb2RlPmludDwvY29kZT4g5a2Y5oC76LS555SoPC9saT4KPC91bD4KPHA+5aaC5p6cIDxjb2RlPlI8L2NvZGU+IOWSjOi0ueeUqOi+g+Wkp++8jOaAu+i0ueeUqOWPr+iDvei2hei\/h+aZrumAmiA8Y29kZT5pbnQ8L2NvZGU+IOiMg+WbtOOAgkMrKyDkuK3lu7rorq7kvb\/nlKggPGNvZGU+bG9uZyBsb25nPC9jb2RlPuOAgjwvcD4KPGgyPuWtpuS5oOaIkOaenDwvaDI+CjxwPuWujOaIkOi\/memBk+mimOWQju+8jOWtpueUn+W6lOivpeiDveWkn++8mjwvcD4KPHVsPgogIDxsaT7or4bliKsgZ3JpZCBwYXRoIOexu+Wei+eahOWKqOaAgeinhOWIkumXrumimDwvbGk+CiAgPGxpPueUqCA8Y29kZT5kcFtyb3ddW2NvbF08L2NvZGU+IOihqOekuuWIsOi+vuafkOS4quS9jee9rueahOacgOS8mOWAvDwvbGk+CiAgPGxpPuS7juWxgOmDqOmCu+WxheeKtuaAgei\/m+ihjOi9rOenuzwvbGk+CiAgPGxpPueUqOa7muWKqOaVsOe7hOS8mOWMluepuumXtDwvbGk+CiAgPGxpPuato+ehruWkhOeQhui+ueeVjOWIl+WSjOeJueauiuaDheWGtTwvbGk+CiAgPGxpPueQhuinoyByb3ctbWFqb3Igb3JkZXIg5Lit5b6q546v6LS555So55qE55Sf5oiQ5pa55byPPC9saT4KPC91bD4KPGgyPumXrumimOWkjeS5oDwvaDI+CjxvbD4KICA8bGk+5Li65LuA5LmIIDxjb2RlPmRwW3JdW2pdPC9jb2RlPiDlj6rkvp3otZbkuIrkuIDooYzvvIzogIzkuI3kvp3otZbmm7Tml6nnmoTooYzvvJ88L2xpPgo8L29sPgo8b2w+CiAgPGxpPuWmguaenCA8Y29kZT5DID09IDE8L2NvZGU+77yM5Li65LuA5LmI6ZyA6KaB5Y2V54us5aSE55CG77yfPC9saT4KPC9vbD4KPG9sPgogIDxsaT7kuLrku4DkuYggdGlsZSBjb3N0IOS4jeiDveWcqOavj+S4gOihjOmHjeaWsOS7jiAxIOW8gOWni++8nzwvbGk+Cjwvb2w+CjxvbD4KICA8bGk+5rua5Yqo5pWw57uE5Li65LuA5LmI5Y+v5Lul5oqK56m66Ze05LuOIDxjb2RlPk8oUiAqIEMpPC9jb2RlPiDpmY3liLAgPGNvZGU+TyhDKTwvY29kZT7vvJ88L2xpPgo8L29sPgo8b2w+CiAgPGxpPuWmguaenOi3r+W+hOWPquiDveWQkeato+S4i+aWueenu+WKqO+8jOiAjOS4jeiDveaWnOedgOenu+WKqO+8jOeKtuaAgei9rOenu+WFrOW8j+S8muWmguS9leaUueWPmO+8nzwvbGk+Cjwvb2w+\", \"feedbackTitle\": \"\u6709\u95ee\u9898\u6216\u5efa\u8bae\uff1f\", \"feedbackNote\": \"\u5982\u679c\u4f60\u5bf9\u672c\u6587\u6709\u7591\u95ee\uff0c\u6216\u5e0c\u671b\u63d0\u51fa\u6539\u8fdb\u5efa\u8bae\uff0c\u8bf7\u7ed9\u6211\u4eec\u53d1\u9001\u79c1\u5bc6\u7559\u8a00\u3002\", \"feedbackButton\": \"\u53d1\u9001\u53cd\u9988\"};\n  function decodeBase64Html(value) {\n    return decodeURIComponent(Array.prototype.map.call(atob(value), function(ch) {\n      return '%' + ('00' + ch.charCodeAt(0).toString(16)).slice(-2);\n    }).join(''));\n  }\n  document.title = data.title + ' - Accel Thinking';\n  var entryTitle = document.querySelector('.entry-title');\n  if (entryTitle) entryTitle.textContent = data.title;\n  var hero = document.querySelector('.ati-hero');\n  if (hero) {\n    var h1 = hero.querySelector('h1');\n    var subtitle = hero.querySelector('h1 + p');\n    var meta = hero.querySelector('.ati-article-meta');\n    if (h1) {\n      h1.setAttribute('aria-label', data.title);\n      h1.innerHTML = '<span class=\"ati-hero-title-line\">' + data.title + '<\/span>';\n    }\n    if (subtitle) subtitle.textContent = data.subtitle;\n    if (meta) meta.innerHTML = '<span>\u4f5c\u8005\uff1aBerny<\/span><span>' + data.date + '<\/span>';\n  }\n  var article = document.querySelector('.ati-post-article');\n  if (article) article.innerHTML = decodeBase64Html(data.articleHtmlB64);\n  var back = document.querySelector('.ati-article-back a');\n  if (back) back.textContent = '\u2190 \u8fd4\u56de CP \u6bcf\u5468\u6311\u6218';\n  var feedback = document.querySelector('[data-ati-feedback]');\n  if (feedback) {\n    var title = feedback.querySelector('.ati-feedback-title');\n    var note = feedback.querySelector('.ati-feedback-note');\n    var button = feedback.querySelector('.ati-feedback-button');\n    if (title) title.textContent = data.feedbackTitle;\n    if (note) note.textContent = data.feedbackNote;\n    if (button) button.textContent = data.feedbackButton;\n  }\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Use dynamic programming, local neighbor transitions, and rolling arrays to find the minimum-cost path through a repeating-cost grid.<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[7],"tags":[],"class_list":["post-1216","post","type-post","status-publish","format-standard","hentry","category-cp-weekly-challenge"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CCC 2025 J5 - Connecting Territories Solution &amp; Analysis - Accel Thinking<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/accelthinking.com\/zh_cn\/ccc-2025-j5-connecting-territories-solution-analysis\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CCC 2025 J5 - Connecting Territories Solution &amp; Analysis - Accel Thinking\" \/>\n<meta property=\"og:description\" content=\"Use dynamic programming, local neighbor transitions, and rolling arrays to find the minimum-cost path through a repeating-cost grid.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/accelthinking.com\/zh_cn\/ccc-2025-j5-connecting-territories-solution-analysis\/\" \/>\n<meta property=\"og:site_name\" content=\"Accel Thinking\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-28T03:41:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-28T06:08:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png\" \/>\n<meta name=\"author\" content=\"ATI Builder\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ATI Builder\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/\"},\"author\":{\"name\":\"ATI Builder\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/#\\\/schema\\\/person\\\/bb7b104098a9c6c91f4fe54c4ab4a348\"},\"headline\":\"CCC 2025 J5 &#8211; Connecting Territories Solution &#038; Analysis\",\"datePublished\":\"2026-06-28T03:41:31+00:00\",\"dateModified\":\"2026-06-28T06:08:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/\"},\"wordCount\":826,\"image\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/accelthinking.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/logo-dark-cropped-51.png\",\"articleSection\":[\"CP Weekly Challenge\"],\"inLanguage\":\"zh-CN\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/\",\"url\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/\",\"name\":\"CCC 2025 J5 - Connecting Territories Solution & Analysis - Accel Thinking\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/accelthinking.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/logo-dark-cropped-51.png\",\"datePublished\":\"2026-06-28T03:41:31+00:00\",\"dateModified\":\"2026-06-28T06:08:24+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/#\\\/schema\\\/person\\\/bb7b104098a9c6c91f4fe54c4ab4a348\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/#breadcrumb\"},\"inLanguage\":\"zh-CN\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-CN\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/#primaryimage\",\"url\":\"https:\\\/\\\/accelthinking.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/logo-dark-cropped-51.png\",\"contentUrl\":\"https:\\\/\\\/accelthinking.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/logo-dark-cropped-51.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2025-j5-connecting-territories-solution-analysis\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/accelthinking.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CCC 2025 J5 &#8211; Connecting Territories Solution &#038; Analysis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/#website\",\"url\":\"https:\\\/\\\/accelthinking.com\\\/\",\"name\":\"Accel Thinking\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/accelthinking.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-CN\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/#\\\/schema\\\/person\\\/bb7b104098a9c6c91f4fe54c4ab4a348\",\"name\":\"ATI Builder\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-CN\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g\",\"caption\":\"ATI Builder\"},\"url\":\"https:\\\/\\\/accelthinking.com\\\/zh_cn\\\/author\\\/ati-builder\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CCC 2025 J5 - Connecting Territories Solution & Analysis - Accel Thinking","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/accelthinking.com\/zh_cn\/ccc-2025-j5-connecting-territories-solution-analysis\/","og_locale":"zh_CN","og_type":"article","og_title":"CCC 2025 J5 - Connecting Territories Solution & Analysis - Accel Thinking","og_description":"Use dynamic programming, local neighbor transitions, and rolling arrays to find the minimum-cost path through a repeating-cost grid.","og_url":"https:\/\/accelthinking.com\/zh_cn\/ccc-2025-j5-connecting-territories-solution-analysis\/","og_site_name":"Accel Thinking","article_published_time":"2026-06-28T03:41:31+00:00","article_modified_time":"2026-06-28T06:08:24+00:00","og_image":[{"url":"https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png","type":"","width":"","height":""}],"author":"ATI Builder","twitter_card":"summary_large_image","twitter_misc":{"Written by":"ATI Builder","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/#article","isPartOf":{"@id":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/"},"author":{"name":"ATI Builder","@id":"https:\/\/accelthinking.com\/#\/schema\/person\/bb7b104098a9c6c91f4fe54c4ab4a348"},"headline":"CCC 2025 J5 &#8211; Connecting Territories Solution &#038; Analysis","datePublished":"2026-06-28T03:41:31+00:00","dateModified":"2026-06-28T06:08:24+00:00","mainEntityOfPage":{"@id":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/"},"wordCount":826,"image":{"@id":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png","articleSection":["CP Weekly Challenge"],"inLanguage":"zh-CN"},{"@type":"WebPage","@id":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/","url":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/","name":"CCC 2025 J5 - Connecting Territories Solution & Analysis - Accel Thinking","isPartOf":{"@id":"https:\/\/accelthinking.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/#primaryimage"},"image":{"@id":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png","datePublished":"2026-06-28T03:41:31+00:00","dateModified":"2026-06-28T06:08:24+00:00","author":{"@id":"https:\/\/accelthinking.com\/#\/schema\/person\/bb7b104098a9c6c91f4fe54c4ab4a348"},"breadcrumb":{"@id":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/#breadcrumb"},"inLanguage":"zh-CN","potentialAction":[{"@type":"ReadAction","target":["https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/"]}]},{"@type":"ImageObject","inLanguage":"zh-CN","@id":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/#primaryimage","url":"https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png","contentUrl":"https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png"},{"@type":"BreadcrumbList","@id":"https:\/\/accelthinking.com\/ccc-2025-j5-connecting-territories-solution-analysis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/accelthinking.com\/"},{"@type":"ListItem","position":2,"name":"CCC 2025 J5 &#8211; Connecting Territories Solution &#038; Analysis"}]},{"@type":"WebSite","@id":"https:\/\/accelthinking.com\/#website","url":"https:\/\/accelthinking.com\/","name":"Accel Thinking","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/accelthinking.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-CN"},{"@type":"Person","@id":"https:\/\/accelthinking.com\/#\/schema\/person\/bb7b104098a9c6c91f4fe54c4ab4a348","name":"ATI Builder","image":{"@type":"ImageObject","inLanguage":"zh-CN","@id":"https:\/\/secure.gravatar.com\/avatar\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g","caption":"ATI Builder"},"url":"https:\/\/accelthinking.com\/zh_cn\/author\/ati-builder\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/posts\/1216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/comments?post=1216"}],"version-history":[{"count":1,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/posts\/1216\/revisions"}],"predecessor-version":[{"id":1217,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/posts\/1216\/revisions\/1217"}],"wp:attachment":[{"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/media?parent=1216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/categories?post=1216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/tags?post=1216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}