たくあんポリポリ

勉強したことを載せていきます。最近、技術系の記事はZennに書いています。(https://zenn.dev/chittai)

【AtCoder】【C#】AtCoder Beginner Contest 170 - D - Not Divisible

f:id:c_taquna:20200115005201p:plain

ABC170 のD問題の反省です

コンテストへのリンク

atcoder.jp

解法

動画を見てください。

www.youtube.com

結果

f:id:c_taquna:20200615233334p:plain

反省

TLEのコード

for (int i = 0; i < A.Length; i++)
{
    var index = 1;
    while (A[i] * index <= A.Max())
    {
        Ans[A[i] * index]++;
        index++;
    }
}

ACのコード

var Amax = A.Max();
for (int i = 0; i < A.Length; i++)
{
    var index = 1;
    while (A[i] * index <= Amax)
    {
        Ans[A[i] * index]++;
        index++;
    }
}

その差は歴然です!繰り返し文の中にLinqの処理を入れないようにしましょう。。。