Ruteのプログラミング日記

競技プログラミング(AtCoder)の問題の解説や、過去問を解いた感想、また解けない過去問について共有したいと思ってます。

AtCoder Beginner Contest 163 感想 &解説

AtCoder Beginner Contest 163が先ほど終了しました。

皆さん、お疲れ様でしたー。

コンテスト開始後問題を開こうとすると

"500 Internal Server Error" と出たと思います。

そうです。鯖落ちしていたのです。

ある方はこのような諸説をたてていたりします...

A問題ではIE(内部エラー)を初めて観測しました。

 21:15:18には運営からunratedの通知が来ました。正直なところこれはもう仕方が無かったのかなと思います。

AtCoder社のサーバーってどのようになっているのかが気になります。

 

今回は、A問題・B問題・C問題を7分で通しました。(おそらく簡単だったかもしれません)

 以降、解説と考察です。

A問題 A - Circle Pond

https://atcoder.jp/contests/abc163/tasks/abc163_a

半径がNの円の周長は2 \pi Nです。

Python3では、math.piを利用することで円周率を利用できるため

この値を出力できます。

https://atcoder.jp/contests/abc163/submissions/12080972

 

B問題 B - Homework

https://atcoder.jp/contests/abc163/tasks/abc163_b

ループを利用するとも考えたのですが、以下のような条件分岐によりO(1)で実行ができます

(1) もし sum(A) ≦Nならば、N-sum(A)を出力する

(2) そうでなければ、-1を出力する

https://atcoder.jp/contests/abc163/submissions/12082247

 

C問題 C - management

https://atcoder.jp/contests/abc163/tasks/abc163_c

この問題ですが、まず 0の要素がN個あるリストを作成します。

次に、以下のようなループを回します。

リストの[A[i]-1]番目の要素を+1する

あとは、リストの各要素を出力すれば期待通りの出力を求めることが出来ます。

時間計算量はO(N)です。

https://atcoder.jp/contests/abc163/submissions/12095608

 

以降、unratedになってしまったので考察です。

D問題 D - Sum of Large Numbers

https://atcoder.jp/contests/abc163/tasks/abc163_d

N = 3の時、各Kに関して組み合わせの数は以下のようになります。

以降、10^{100}といちいち書くのはややこしいので10^{100}+NNとします。

K = 1 0,1,2,3の3通り

K = 2 0 and 1 , 0 and 2, 0 and 3, 1 and 2, 1 and 3, 2 and 3

このうち、0 and 3と1 and 2が被っているので5通りになります。

K = 3 0 and 1 and 2, 0 and 1 and 3, 0 and 2 and 3, 1 and 2 and 3の4通り

 K = 4 0 and 1 and 2 and 3 の1通り

 

同様に、N=4の場合

K =1 = 5通り

K =2 = 7通り

K =3 = 7通り

K =4 = 5通り

K =5 = 1通り

となります。

ここで、気づくのは本来の通り数が6通り以上の時に通り数が少なくなっているということです。

これを実装すればよいのですが、Python3で実装しようとするとなぜかオーバーフローになってしまいました。別の解法があるかもしれないので、終了後に考えてみようと思います。(コメントなどで原因を教えていただけると助かります)

f:id:Rute_programming:20200419222925p:plain

▲ Overflowになる原因を教えて下さい

以上、AtCoder Beginner Contest 163 感想&解説 でした。

最後に「幻となった水パフォーマンス」の画像を掲載します。

(多分コンテスト終了後には茶色くらいに落ちていると思います)

f:id:Rute_programming:20200419223502p:plain

▲ 幻となった水パフォーマンス

 

ここで皆さんにお知らせがあります。

来週のyukicoderコンテストで、私が作問した問題が出題される予定です!(といっても、1問だけなのですが)

難易度は★1 ~ 1.5相当を予定しています。

コンテスト終了後、当ブログにて解説を公開する予定です。お楽しみに!

AtCoder Beginner Contest 162 (感想&反省)後日談

AtCoder Beginner Contest 162が先週日曜日の21:00-22:40に開催されました。

皆さん、お疲れ様でしたー。

結果から申し上げますと3完でした。(D以降が解ける気がしなくて萎えてましたorz)

パフォーマンス ・レーティング変化

 コンテスト成績証

ユーザ名 Rute
コンテスト名 AtCoder Beginner Contest 162
順位 5450th / 10666
パフォーマンス 614
レーティング 440 → 459 (+19)

 

というわけでほぼ中央値みたいな順位でしたね()

 

A問題

https://atcoder.jp/contests/abc162/tasks/abc162_a

様々な解法が考えられます。

Nを、文字列Sと考え、S[0],S[1],S[2]に"7"が現れれば"Yes"と出力、そうでなければ"No"と出力しましょう。

 

コード:  https://atcoder.jp/contests/abc162/submissions/11787793

 

B問題

https://atcoder.jp/contests/abc162/tasks/abc162_b

(1,N)の区間で変数iを用いて以下のループを回します:(ans = 0とします)

もしiが3または5で割り切れるなら ans には何も加算しない

そうでなければans にiを加算する。

これにより、時間計算量O(N)で処理が可能です。

コード: https://atcoder.jp/contests/abc162/submissions/11791945

 

C問題

https://atcoder.jp/contests/abc162/tasks/abc162_c

ん...全探索か これはO(K^3)であり、制約K≦200の範囲では最大でも

8×10^6回だからPythonで間に合うな。

 

試しにコードテストに投げてみるか

 

コードテスト大混雑!!

コードテストしてから1分経過しても終わる見込みがない!!(

unratedを覚悟したが、「この現象により、コンテストがUnratedになることは、今のところありません。」ということからあることを思いつく。

コードテストが混雑してるならその時間利用して本気で全列挙してみるか。

ということで、やってみた!!

 

f:id:Rute_programming:20200412235510p:plain

▲This is 全列挙!

これで1≦K≦200の制約上の全ての答えを出すことが出来ました。

あとはこのリストのK-1番目の要素を出力してしまいましょう!

計算量 驚愕の O(1) !! O(1)解法です!(あまり類が無いと思います)

 ちなみに、後々調べてみると O(K^3)の解法では

Python3ではTLEになるものの、PyPy3ではACになることが判明。

あのときPython3で同様のコードを提出していたらペナルティを与えられたということです()

ちなみに、Python3とPyPyの違いについて、分かりやすくまとめてあると思ったページを以下に掲載しておきます。

https://qiita.com/OKCH3COOH/items/f0c5c4681bc30dddf7f4

 

D問題

スルー。

 

E問題

最初、おそらく計算量的に間に合わないことから、Double Factorialのように、何か計算をして出力をすることを思いつきました。

 

すると、以下のような数列が出来ました。(それぞれのN,Kに対してgcdを計算しました)

(Nを固定して、Kを変化させたときのgcdの総和の数列)

N = 2: 3,5,9,17,33,65 階差: 2+4+8+16+32
N = 3: 6,12,30,84,246,732 階差: 6+18+54+162+486
N = 4: 10,24,76,276,1060,4164 階差:14,52,200,784,3104

N = 2, N = 3のとき、階差が等比数列であると思ったのですが、N = 4の場合なぜか当てはまらず。

N = 5のときもあてはまらず。

結果、残り5分まで考えたものの、解の一般項が思いつかずここで撤退しました。

 

以上、ABC162の感想・反省などでした。

次回のABCではレーティング500・Highestを目指します!

あさかつ4/10 考察 by Rute

あさかつ4/10が終了しました。

皆さん、お疲れ様でした!今回は、AtCoder Problemsが落ちたりするなど、いろいろとトラブルがあり、制限時間が従来より15分短かったです。

私は3完で、茶difficultyまで解くことができました。(以降A~Cまでの考察です)

 

A問題

https://atcoder.jp/contests/abc139/tasks/abc139_b

この問題ですが、 B = 1の場合、タップを接続しなくてよいので0を出力します。

それ以外( B >1)の場合、タップを接続する必要があります。

初期値 kuti = 1と定義し、それにA-1を足していき、kuti ≧ B となった段階でのタップの個数を出力すればよいです。

 

コード

https://atcoder.jp/contests/abc139/submissions/11705848

 

B問題

https://atcoder.jp/contests/abc079/tasks/abc079_c

"+","-"を3つ入れる組み合わせは 2^{3}通りなので、それを全通り試せば良いです。

ただし、また答えが複数存在する場合はどれを出力してもよいものとします。

とあるので、複数行出力しないように実装しましょう。

 

コード:

https://atcoder.jp/contests/abc079/submissions/11706044

 

C問題

https://atcoder.jp/contests/abc079/submissions/11706044

締め切りが早い順にリストをソートする貪欲法で解くことが出来ます。

 

手順としては

1. 締め切りが早い順にリストをソートする

2. 以下のループをN回( i = 0 to N-1)行う

 simekiri = ls[i][0] とし、now に ls[i][1]を加算する

 now > simekiriの場合は締め切りに間に合わないので("No")を出力し、ループを終了

 また、flagの値を+1する

3. flagの値が0ならば、締め切りに間に合わなかった仕事はないので("Yes")を出力

 

という手順です。

 

コード:

https://atcoder.jp/contests/abc131/submissions/11706199

 

以上、あさかつ4/10の考察でした。D以降は考えてみます

AtCoder Beginner Contest 161 感想&反省[For Beginners]

AtCoder Beginner Contest 161 が2020/04/04に行われました。みなさんお疲れ様でしたー。

今回はA,B,C問題を3完。Performanceも668と、茶色パフォーマンスでした。

 

解説

A問題

https://atcoder.jp/contests/abc161/tasks/abc161_a

いろいろな解法があります。

時間のかかる解法になりますが、3つの数字をリスト(配列)と捉え、問題文通りに実装すればよさそうです。

  1. A = list(map(int,input().split()))
  2. A[0],A[1] = A[1],A[0]
  3. A[0],A[2] = A[2],A[0]
  4. print(*A)
  5. #豆知識 (*リスト名)とすると、リストの
  6. 要素を全て出力することが出来ます

B問題

https://atcoder.jp/contests/abc161/tasks/abc161_b

問題文通り実装すればよさそうです。

  1. N,M = map(int,input().split())
  2. A = list(map(int,input().split()))
  3. B = sum(A)*(1/(4*M))
  4. ans = 0
  5. for i in range(N):
  6. if A[i]>=B:
  7. ans += 1
  8. if ans >= M:
  9. print("Yes")
  10. else:
  11. print("No")

 

C問題

https://atcoder.jp/contests/abc161/tasks/abc161_c

数学の問題です。始めに、

  1.  N = K
  2.  N < K
  3.  N > K

の3つのパターンでそれぞれどうするかを考えます。

1.N = Kの場合

N - Kをすると、絶対値は0になり、その後は0→K→0→Kを繰り返すので

0を出力しましょう。

2.N < Kの場合

例えば、N = 3,K = 7の場合。4→3→4→3 \dotsとなり、

N = 2,K = 6の場合、4→2→4→2 \dotsとなります。

つまり、abs(N-K)Nの最小値といえそうです。

ただし、これには例外があり、 2N<Kの場合は、Nが最小値となります。

3. N > Kの場合

N = 7, K = 3の場合 4→1→2→1 \dots

N = 11, K = 3の場合8→5→2→1→2 \dots

となります。つまり、K-(N \% K)Nの最小値といえそうです。

ただし、場合によっては N \% KNの最小値となる場合があるので

min(K-(N \% K),N \% K)を出力すればどちらのケースでも対応できます。

あとはこれを実装すればよいです。

  1. N,K = map(int,input().split())
  2. if N==K:
  3. print(0)
  4. elif N > K:
  5. if N%K == 0:
  6. print(0)
  7. else:
  8. print(min(N%K,K-(N%K)))
  9. elif N < K:
  10. if 2*N<K:
  11. print(N)
  12. else:
  13. print(abs(N-K))

 

D問題はどう見ても数学っぽいので飛ばしました。

 

E問題

https://atcoder.jp/contests/abc161/tasks/abc161_e

この問題、解けそうな感じがしたのでTryしてみました(解説ではありません)

まずは、テストケースを見てみます。

入力例 1 Copy

Copy
11 3 2
ooxxxoxxxoo ooxxxoxxxoo

出力例 1 Copy

Copy
6

高橋君は 11 日間のうち 3 日働こうとしています。ある日働いたらその後 2 日間は働きません。

働く日としてありえる組み合わせは「1,6,10 日目」「1,6,11 日目」「2,6,10 日目」「2,6,11 日目」の 4 通りです。

したがって、6 日目に必ず働きます。

ここで考えたのは、"x"の数の累積和を利用して解くというものです。

(Sのi文字目をS[i]とします)

ooxxxoxxxoo という文字列があった時に、S[i]までの"x"の文字列の数をそれぞれ計算していきます。

すると、[0,0,1,2,3,3,4,5,6,6,6]という配列が完成しました。

働ける日の条件として

1日働いたらC日は働かない

"x"の書いてある日付では働かない

という条件であるので

S[i]からS[i+C]番目の文字列で

・S[i] = "o"である

・S[i]からS[i+C]までの文字列に含まれる"o"の個数が1個以上ある

という条件に当てはまる日が働ける日の候補 ということで考えてみました。

それからいろいろと実装をしていきました。

すると、なんとサンプルケースに当てはまっていくではありませんか!

提出をしてみたのですがWA。理由が今でもよく分かっていませんorz

  1. N,K,C = map(int,input().split())
  2. S = input()
  3. L = [0]*(N)
  4. ans = 0
  5. P =
  6. for i in range(N):
  7. if S[i] == "x":
  8. ans += 1
  9. L[i] = ans
  10. for i in range(C):
  11. L.append(ans)
  12. Q =
  13. for i in range(N):
  14. flag = 0
  15. if S[i] == "o":
  16. #もし1日目で働ける場合
  17. if L[i+C]-L[i] <= C:
  18. #累積の休み日数がC以下
  19. P.append(i+1)
  20. else:
  21. if len(P) >= 1:
  22. s = P.copy()
  23. Q.append(s)
  24. P.clear()
  25. else:
  26. if len(P) >= 1:
  27. s = P.copy()
  28. Q.append(s)
  29. P.clear()
  30. Q.append(P)
  31. if len(Q) == K:
  32. for i in range(len(Q)):
  33. if len(Q[i]) == 1:
  34. print(*Q[i])

以上、A問題~C問題の解説と、E問題の考察でした。

今回を含め、以降の記事ではPython3で書いたコードをここにまとめることにします。

(Githubでも良かったのですがブログ上に貼り付ける方が便利なので)

 

ちなみに、今日21:00から行われる Judge System Update Test Contest 202004は、

unratedのコンテストです。(順位表から、4問なので おそらく旧ABC級?)

も し か す る と First Accepted (FA)を取れる機会にもなりそうなので、FA取りたい人は1番を目指して頑張って下さい!

(ペナルティはつきますがratedでは無いので関係ないと思います)

AtCoder Beginner Contest 160 感想&反省[for beginners]

ABC160が終了致しました。皆さんお疲れ様でした。

さて、感想を伝える前に、このブログを初めて閲覧される方もいるかと思いますので、ここで、このブログの説明を再度しておきます。(知っている方は飛ばして下さい)

 

【このブログについて】about this blog

このブログでは主に様々なプログラミングコンテストの問題の解説などを行います。ただ、実力があまり伴っていませんので、主に「灰色コーダー」「茶色コーダー」向けの解説になることは承知下さい。

AtCoderの他、Codeforces,Yukicoderなどの解説を行っていきます。

So, this blog is commentary about Atcoder(ABC),Codeforces,Yukicoder and some of competition programming contests. My programming skill is not so well, so this commenary is for beginners(Main A,B problem)

 

A問題/A-Problem

解法

https://atcoder.jp/contests/abc160/tasks/abc160_a

この問題は単純で PythonならばS[2] = S[3]かつS[4] = S[5]を満たしているかを判定すれば良いです。

So, this problem is easy. You just have to judge second letter and third letter same , and forth letter and fifth letter same.

 

B問題/B-Problem

解法

https://atcoder.jp/contests/abc160/tasks/abc160_b

この問題ですが、まずX円が用意されます。それに対して500を減算できる限界までXから減算し続け、その回数幸福度のパラメータに1000を加算。

その後、5を減算できる限界までまたXから減算し続け、その回数幸福度のパラメータに5を加算。

最後に、幸福度を出力すれば良いです。

This problem, you have integer X that is money Takahashi'san have. 

Please continue below:

If X ≧ 500, substract X by 500 and happiness parameter add 1000.

if X <500, please continue below.

if X ≧ 5,substract X by 5 and happiness parameter add 5.

if X < 5, please stop this roop.

Finally , happiness parameter is answer. so if you output this parameter, you get AC.

C問題/C-problem (解けませんでした / I didn't solve this problem.)

https://atcoder.jp/contests/abc160/tasks/abc160_c

この問題ですが、池の周りを回る巡回セールスマン問題と同値です。

This problem is equal to Traveling Salesman problem with around lake.

考察(個人的なもの、なにか抜け落ちていたらコメントをお願いします)

This is concideration , If this concideration is not perfect, please comment it.)

始めに私は昇順、降順の順番に考えました。

その後、入出力例2のような、池の周りを降順ではないような反時計回りの方法で回ることを考えました。(5→0→15)

この回答でsubmissionしましたが、テスト15までACして、後はWAでした。)

Firstly, I considered about ascending and descending order.

Second , I considered about input 2 case. ( 5 → 0→ 15) expected of descending order, and Counterclockwise.

I submit this answer, hoever I didn't get AC.

 

C問題が出来なかったのはとても悔しいので、解説を読むようにします。

I will try to read the explanation because I could not solve the C problem.

 

今回はA問題、B問題の2完でした。ちょっと不甲斐ないです。

I solved this contest's A problem and B problem.It was a disappointing result.

【ここからは日本語だけになります。/追記】

また、今回はちょっとレーティング制度に関してちょっと嫌な点がありましたのでこれは私の意見になりますが聞いて下さい。

今回、C問題は解けたとしても解けなかったとしても提出をするつもりはありませんでした。提出したところでパフォーマンスが数点しか上がらないので、メリットがないと考えました。

私が提出しようとして順位表を見たところ、600点の最低パフォーマンスが312, 300点の私のパフォーマンスが305だったので、提出する気になれなかったのです。

追記23:11) AC-predictorというツールを利用してパフォーマンスの値を見ました。通常では決して見ることはできません。通常でもパフォーマンスを見ることが出来るという誤解を与えた方には申し訳御座いません。

これにより、問題が解けたとしてもレーティングが上がらないので結局提出しませんでした(どっちみち解けはしないと分かっていましたが)

 

これは個人的な意見なのですが、初級者でレートだけを意識している方はこのような同じ気持ちになると思うんですよね。なので今回のコンテストによって競技プログラミングへの意欲が下がる方が多く出てこないでほしいと思っています。

皆さんはどのように思いますか?私の勝手な意見にはなりますが、コメントして頂けると幸いです。

追記23:08)この行為はスポーツマンシップに反するような行為であると自覚しております。今後はこのような行為をしないようにします。申し訳御座いませんでした。

 

以上、感想&反省でした。

Codeforces #629 (Div.3) 感想等

Codeforces #629 (Div.3)が昨日23:35から行われました。

当記事では、当該コンテストの問題についての解説を行います。

が、その前に

Codeforce重かったですよね....今回、20000人以上の参加になったみたいなので、ジャッジなども重くなったみたいです。(問題文が見れなくなることもありました)

 

A問題

t個のテストケースが与えられて、それぞれに対して以下の問題を解きます:

2つの整数a,bが与えられます。

aa+1に任意回変更することが出来ます。(つまり、aに何度も1を足すことが出来ます)

この時、abで割り切れるようにするには、aを何回変更する必要があるか求めなさい。

制約: 1≦t≦10^4 , 1≦a,b≦10^9

 

解法

まず、abで割れるかどうかで条件分岐を行います。

(ここで、abで割ったあまりをdとします。)

d=0なら、何も操作する必要がありませんから、0を出力します。

d > 0なら、bに対してb-d回の操作が必要ですから、

b-dの値を出力します。

これでこの問題を解くことが出来ました。

 

 B問題

t個のテストケースが与えられて、それぞれに対して以下の問題を解きます:

2つの整数n (n>2)kが与えられます

n-2文字が"a"で、それ以外の文字が"b"である文字列を考えます。このとき、

n桁でこれを満たす文字列の内辞書順でk番目の文字列を出力して下さい。

 制約: 1≦t≦10^4, 3≦n≦10^5, 1≦k≦min(2×10^9,\frac{(n-1)n}{2})

 

考察(Ruteは解けませんでした)

問題文を読むと、

"2桁が"b"で、残りの桁が"a"である文字列のうちk番目の文字列を出力しなさい。"と言い換えることが出来ます。

ここで考えたのは、「異なる2つの2のべき乗で表される数字」というものです。

f:id:Rute_programming:20200327131613p:plain

今回考える数列

例えば、3 = 2^{0}+2^{1}5 = 2^{0}+2^{2}6 = 2^{1}+2^{2}

のように、n = 2^{a}+2^{b} (a \neq b)で表される数nが数列になっています。

これを利用すれば、条件を満たす2進数を列挙することが可能になります。

追記13:45)例えば、n = 5,k=1のとき、数列の1項目である3を考える2進数としましょう。

3の2進数表現は"11"なので、5桁にゼロ埋めし、その後に"1"の部分を"b","0"の部分を"a"としました。すると、"aaabb"が出力されます。

これを他のn,kでも同様にすれば良いです。

ただ、一般項などが分からなかったために、作成したリストを提出しようとしましたが

65536文字以上のコードなので提出できません。

orz。まぁ対策はされていたということを初めて知ったので良い経験になりました。

A問題の1完です。koboshiさんの記事を読んでまた勉強したいと思います。

 

解説は以上です。コードなどの提示を求められましたら随時このブログに掲載します。

 

AtCoder Beginner Contest 159 感想と今後

今回思ったこと。灰色降格が見えてしまった....

 

というのも、A問題・B問題・C問題の正解者数が多すぎるので正直なところもう諦めていました。()

 

A問題

https://atcoder.jp/contests/abc159/tasks/abc159_a


数学っぽいけど 要するに 奇数の数の足し方の総和+偶数の足し方の総和 を求める問題ですね。これを出力すれば正解となります。

B問題

https://atcoder.jp/contests/abc159/tasks/abc159_b

スライスを利用すれば解くことが出来ます。

Pythonの場合、スライスはP[指定要素:指定要素+1]でその部分の文字列を取ることが出来ます。

今回は

K = (N-1)/2

L = (N+3)/2とし、

S[0:K],S[L-1:N]が一致しているかいないかを判定すれば正解となります。

C問題

https://atcoder.jp/contests/abc159/tasks/abc159_c

愚直に考えるよりも、冷静に考えて3辺の長さがL/3のとき最も体積が大きくなります。

よって(L/3)^{3}を出力すれば正解となります。

 

D問題

https://atcoder.jp/contests/abc159/tasks/abc159_d

んー、よく分かりませんでした。

リストを再起コピー (b = A.copy())で各i(1≦i≦N)番目の要素のみを取り出したリストを作成するのは分かったのですが、おそらく全て実行してしまうとO(N^2)となるので撤退。

 

600点勢の中では早い方だとは思うんですけど、パフォーマンスはおそらく灰色間違いなしかと思います...Orz

今回の成長 → 時間はかかったがWAが1回もなかった!えらい!

 

【今後】

基本情報技術者試験が近いので、しばらくは競技プログラミングから離れるかもしれません(ただ、1日1問は解きます)

 

そこで様々な参考書を利用しようと思います

https://booth.pm/ja/items/1318168

https://booth.pm/ja/items/1573891

この2冊は「銀髪赤眼の後輩と学ぶ競技プログラミング」という本で、競技プログラミングに関することが書かれています。主に「銀髪赤眼の後輩と学ぶプログラミング2」を利用して勉強しようと思います(本書の内容については、ネタバレのためお伝えすることが出来ません、ご了承下さい)

 

②精進100問

https://qiita.com/e869120/items/eb50fdaece12be4c18faa#2-3-%E5%88%86%E9%87%8E%E5%88%A5%E5%88%9D%E4%B8%AD%E7%B4%9A%E8%80%85%E3%81%8C%E8%A7%A3%E3%81%8F%E3%81%B9%E3%81%8D%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-100-%E5%95%8F

 

E869120さん(競プロでかなり上位に位置されている方)が執筆した「 分野別 初中級者が解くべき過去問精選 100 問」というものがあります。

この問題を1日1問以上は解こうと思いますが、実践的な練習のため、ある程度の制限時間を設けようと思います。

300点問題相当 (100点を含む) = 15分以内

400点問題相当(100点等を含む) = 25分以内

それ以外 = 50分以内

 

これ以降は、解説を見る or ACしている方のコードを見て解説ACとしますが、なるべく解説ACとしたくはありません....

 

rng_59さんがパナソニックプログラミングコンテスト後に言っていたツイートを引用しますが、

 

 ということでした。ただ、早い人のコードが長い場合は分かりやすいコードを優先して読むようにします。

 

以上です。最後に

A問題祝正解者数8000人突破! またまた最高記録を更新したんじゃ無いでしょうか??

f:id:Rute_programming:20200322223926p:plain

A問題の正解者数が8000人を突破!