online.atcoder.jp解法1円玉には制限があり、500円玉は無制限。500円玉で払える分は最大限支払い、残りを持っている1円で払えるかを判断すればよいです。よって、Nを500で割った余りが1円の所持枚数A以下であればYes、そうでなければNoとなります。online.atcoder.jp解法AliceとBobは交互にカードを選ぶそれぞれ自分の得点を最大化するように最適な戦略を取るということは、AliceもBobも残っているカードのうち大きい数字からとっていくことになります。よって、カードを降順にソートすれば、(0インデックスで)偶数番目をAlice、奇数番目をBobが選ぶことになります。Bobの点数なので、解としては偶数番目は加算、奇数番目は減算すればよいです。online.atcoder.jp解法300点にしてはちょっと難しかったです。cとa、bの関係を表すと以下のようになります。(a1,a2,a3,b1,b2,b3)が存在すると仮定すると、aにxを足したものとbからxを引いたものも、つまり、(a1+x,a2+x,a3+x,b1-x,b2-x,b3-x)も条件を満たすことがわかります。(上の式に当てはめてみるとわかります)よって、xを調整すれば、a1が0のパターンもあり得ることになります。よって、a1を0としたときの残りのを求めることができます。求まった数について、求めるのに使った式以外の式を満たすかどうか判定し、矛盾すればNo、問題無ければYesとなります。迷路の探索問題の応用でとけます。最初に(1,1)から(H,W)までの最短経路を深さ優先探索などで解きます。最短経路のマス数)を求めれば良いです。実装のポイントとして、マスの境界値の判断ロジックをシンプルにするために、事前に外枠を黒マスで囲んでおきます。左から順にpiをみていきます。寿司の数が105なので、O(N)であれば間にいそう。いうことで、まずは全探索で考えてみる。ワーシャルフロイド法をベースにしてその考え方を応用することで解けます。最大になるのは、mがaiの倍数-1の時で、余りはai-1になる。コメントをキャンセルメールアドレスが公開されることはありません。