Stamphttps://atcoder.jp/contests/ABC233/tasks/abc233_aまずYからXを引き、残り何円あればよいかを考えます。残りの金額を十分に満たす10円切手の枚数は、10で割った値を切り上げることで求まります。YからXを引いた値が負の場合はもう十分な切手がはられているので、必要な枚数は0枚です。Reversehttps://atcoder.jp/contests/ABC233/tasks/abc233_b文字列のスライスを使って実装します。反転はS[::-1]で行うことができます。スライスはわかりにくいので、テストケースを用いて帳尻を合わせます。10^5の制約から、ボールの最小値が2のときの袋の数はおよそ20個となり、このとき取りうる組み合わせは1048576通りで、十分に全探索可能です。いつものようにfor文で全探索をしようとすると実装が困難です。いうときにはDFSで全探索をすると簡潔に記載できます。全探索のdfs関数には深さと値の2つを引数に取ると書きやすいです。2回目以降のdfsでは深さを1段ずつ深くしていき、そのたびに値を更新していきます。1))なお、itertools.productとmath.prodを使うとかなりシンプルに実装できます。Intervalhttps://atcoder.jp/contests/ABC233/tasks/abc233_dAの累積和を考えます。Kとなる(l,r)を求めるというものです。Kを満たすlの個数になります。S_{l}はS_{r}を記録した配列に含まれることが重要な考察になります。for文でS_{r}の出現数をカウントすることで、いつかS_{l}として使う値を記録することができます。この性質によってS_lを求めるためにfor文を追加する必要がなくなり、for文ひとつで答えが求まります。IntervalZennエンジニアのための情報共有コミュニティAboutZennについて運営会社お知らせ・リリースGuides使い方Publicationよくある質問LinksTwitterGitHubメディアキットLegal利用規約プライバシーポリシ。