Олимпиадага даярдык: тез киргизүү-чыгаруу

bufio: тез киргизүү-чыгаруу жана Go тилиндеги олимпиадалык шаблон.

fmt.Scan символ-символ окуйт жана чоң маалыматтарда үмүтсүз жай. Go тилиндеги олимпиадалык стандарт — bufio пакетиндеги буферленген киргизүү-чыгаруу: • bufio.Reader + fmt.Fscan — тез окуу; • bufio.Writer + fmt.Fprintln — тез чыгаруу; аягында writer.Flush() милдеттүү, антпесе буфер басылбай калат (жана туура чечим менен Wrong Answer аласыз).
Go

Олимпиадалык шаблон. Киргизиңиз: 4, андан кийин 10 20 30 40

Шаблондо эмне маанилүү: • reader жана writer пакет деңгээлинде жарыяланган — каалаган функциядан жеткиликтүү; • defer writer.Flush() main функциясынан чыкканда буфердин тазаланышын кепилдейт — бул сапты биринчи жазуу Go олимпиадачыларынын ырымына айланган; • fmt.Fscan(reader, &x) — ошол эле Scan, бирок тез буферден. Go олимпиадачысынын checklist'и: 1. writer.Flush() унутулган жокпу? (defer муну биротоло чечет) 2. Go тилинде int 64 биттик — int32 ашып кетүүсүнөн коркпосо болот, бирок үч чоң сандын көбөйтүндүсүн баары бир текшериңиз. 3. len(s) — байттар; кириллица жана юникод үчүн []rune аркылуу иштеңиз. 4. Колдонулбаган өзгөрмөлөр жана импорттор компиляцияланбайт — өчүрүңүз.
Курс аяктады — куттуктайбыз! «Окуу» бөлүмүн ачып, «Олимпиадачынын жолун» 1-деңгээлден баштаңыз: алгоритмдердин татаалдыгы, ишке ашыруу маселелери жана негизги математика. Мелдештерде ийгилик каалайбыз!
Доска