Олимпиадага даярдык: тез киргизүү-чыгаруу
sys.stdin аркылуу тез окуу, олимпиадада Python тилинин тузактары жана checklist.
Python кыска жазылат, бирок C++ тилинен ондогон эсе жай. Олимпиадаларда жашап кетиши үчүн бир нече ыкманы билүү керек.
Биринчиси жана башкысы — тез окуу. Кадимки input() жай; маалымат көп болгондо (жүз миңдеген саптар) чечим окуудан эле улам лимитке батпай калышы мүмкүн. Алмаштыруучусу — sys.stdin.
Python
Тез окуу шаблону. Киргизиңиз: 4, андан кийин 10 20 30 40
Бул жерде эмне маанилүү:
• input = sys.stdin.readline — жай input функциясын тез окуу менен алмаштырат (этият болуңуз: readline аягында сап которуу символун калтырат, сандар үчүн бул тоскоол эмес, саптар үчүн .strip() колдонуңуз);
• жооптор тизмеге топтолуп, join аркылуу бир print менен чыгарылат — миңдеген өзүнчө print байкаларлык жайыраак иштейт.
Алдын ала билүү керек болгон Python тузактары:
1. Терең рекурсия кулайт: демейки лимит болжол менен 1000 чакырык. sys.setrecursionlimit(300000) менен көбөйтүңүз же циклге кайра жазыңыз.
2. Эгер алгоритм туура болуп, бирок убакыт баары бир жетпесе — адегенде өзүңүздөн ашыкча циклди издеңиз, тилди андан кийин гана күнөөлөңүз.
3. Бүтүн сандар ашып кетпейт — Python тилинде бул жөнүндө таптакыр ойлонбосо болот.
Жөнөтөр алдындагы checklist:
1. Четки учурлар: n = 1, бош маалыматтар, терс сандар.
2. // жана % туурабы (/ эмеспи)?
3. Чыгаруунун форматы шарт менен так дал келеби?
Курс аяктады — куттуктайбыз! «Окуу» бөлүмүн ачып, «Олимпиадачынын жолун» 1-деңгээлден баштаңыз. Ийгилик!