AtCoder Contest 186

Problems I could not solve -

  1. https://atcoder.jp/contests/abc186/tasks/abc186_d

    Reason : Could not observe pattern => Sort the list then observe.

  2. https://atcoder.jp/contests/abc186/tasks/abc186_e

    Reason : Missing Concepts => Congruence Modulo, Solving Linear Congruences, Extended Euclid’s Algorithm

    Congruence Modulo is basically two integers which give the same answer when taken the mod of by some integer X. For example, if A mod X = 1 and B mod X = 1, then we say A ≡ B mod X

    There are N chairs, we are at S chair from start and can jump K chairs. To reach the first chair in x moves, => S + xK must be equal to 0. => S + xK = 0. => (S +xK) % N = 0 => S + xK ≡ 0 % N (from congruence modulo concept) => Kx ≡ -S % N => Kx ≡ (N-S) % N This is a linear congruence of the form Ax ≡ B % N which can be solved as follows ->

    a. There is a solution iff B % gcd(A,N) = 0. b. There are gcd(A,N) solutions seperated by N / gcd(A,N)

    Let gcd(A,N) be g. Since g must divide A, B and N let, A’ = A/g, B’ = B/g, N’ = N/g. Now the equation becomes => A’x ≡ B’ % N' Since g was the gcd of A and N and we divided A and N by g, hence the gcd of A’ and N’ must be 1. Hence, x = (A’’ * B’) % N’ where A’’ is the inverse modulo of A’ mod N'.

    We can use the extended euclid’s algorithm to find inverse modulo. From extended euclid’s algorithm, we can find integers x and y such that for integers a and b, ax + by = gcd(a,b)

    Let a = A’ and b = N’, and since gcd(A’, N’) = 1, we can write, A’x + N’y = 1

    We can say that, A’x + N’y ≡ 1 % N' => A’x ≡ 1 % N'

    Which basically means that the x co-efficient returned by euclid’s extended algorithm must be multiplied to our ans.

    Hence, final ans = (B % N * x) % N;

  3. https://atcoder.jp/contests/abc186/tasks/abc186_f

    Reason : Missing Concept => Fenwick Trees

    TBF I do understand the logic on how to solve this, but can’t wrap my head around on why and how to use fenwick trees to arrive at the solution. Will try this later.