354.: Missax

(Typical “find the missing element” problem – often appears on many online judges under the name Missax .) 1. Problem statement You are given an integer N ( 1 ≤ N ≤ 10⁶ ) . Then N distinct integers a₁ , a₂ , … , a_N are supplied.

{ 1 , 2 , 3 , … , N+1 } i.e. the list is a permutation of the numbers 1 … N+1 . Your task is to output the missing number.

x = 1 xor 2 xor … xor (N+1) xor a1 xor a2 … xor aN Every value that appears twice cancels out, leaving the missing number. Both approaches are linear in time and constant in memory. For each test case 354. Missax

N a1 a2 … aN (may be split over several lines) The file ends with a line containing 0 , which must be processed.

Proof. The algorithm first stores missing = S . During the input loop it subtracts each read number a_j from missing . After the loop finishes (Typical “find the missing element” problem – often

read N if N == 0 → finish missing = (N+1)*(N+2)/2 // 64‑bit integer repeat N times read x missing -= x output missing or (XOR version)

Proof. By Lemma 2 the value stored in missing after processing the whole test case equals S – T . By Lemma 1 S – T equals the missing element m . Therefore the printed value is exactly m . ∎ Time – each number is read and processed once → O(N) per test case. Memory – only a few 64‑bit variables are kept → O(1) . 6. Reference implementation (C++17) #include <bits/stdc++.h> using namespace std; { 1 , 2 , 3 , … , N+1 } i

All the numbers belong to the set

The input may contain several test cases. Each test case is described as follows

missing = 0 for i = 1 … N+1 missing ^= i repeat N times read x missing ^= x output missing We prove the sum‑based algorithm; the XOR version follows the same line of reasoning. Lemma 1 Let S = Σ_{i=1}^{N+1} i . Let T = Σ_{j=1}^{N} a_j be the sum of the numbers actually present. If exactly one element m of {1,…,N+1} is missing, then S - T = m .

missing = S – Σ a_j = S – T ∎ For each test case the algorithm outputs the unique missing integer.

354. Missax354. Missax
18+
We use cookies to provide the best experience for you on xHamster
If you choose "Accept", we will also use cookies and data to:
  • Show personalized content
  • Show recommended videos, based on your activity
  • Save and show your likes and watch history
If you choose "Reject", we will not use cookies for these additional purposes.
To customize your cookie preferences, visit the Manage cookies section. We may also use third-party cookies. For more details about our policies, review Cookie Policy and Privacy Policy.
xHamster is adults only website Available content may contain pornographic materials. By continuing to xHamster you confirm that you are 18 or older. Read more about how to protect your minors
RTA Restricted To Adults