CSES - Missing Number | Số còn thiếu

View as PDF



Authors:
Problem types
Points: 800 (p) Time limit: 1.0s Memory limit: 512M Input: stdin Output: stdout

You are given all numbers between \(1, 2, \ldots, n\) except one. Your task is to find the missing number.

Input

  • The first input line contains an integer \(n\).
  • The second line contains \(n−1\) numbers. Each number is distinct and between \(1\) and \(n\) (inclusive).

Output

  • Print the missing number.

Constraints

  • \(2 \leq n \leq 2\cdot10^5\)

Example

Sample input

5  
2 3 1 5

Sample output

4


Comments


  • 1
    Avocadorable    8:06 p.m. 22 feb, 2024
    N = int(input())
    
    sumtoN = N * ((1+N)/2)
    actualSum = sum(list(map(int, input().split())))
    
    print(int(sumtoN - actualSum))
    

    • 0
      NTT_36    1:00 p.m. 15 oct, 2023

      Bài này 800 điểm thì hơi quá:v


      • 1
        quann    6:33 p.m. 7 sep, 2023

        đơn giản, ta chỉ cần lấy tổng của 1 đến n trừ cho tổng của dãy đã cho:
        -đầu tiên, tạo một biến sum, chạy một vòng lặp for cộng sum cho từng phần tử trong dãy (VD: sum = 2 + 3 + 1 + 5 = 11)
        -tiếp theo, trả về kết quả tổng từ 1 đến n (công thức là n*(n + 1) / 2) trừ cho sum (VD: 15 - 11 = 4)


        • 0
          xthabao1    9:00 a.m. 2 aug, 2023

          sao code này mình test được mà lại runtime error

          include<bits/stdc++.h>

          using namespace std;
          long long n,a[100000011],i,tg=0,MAX=0,d,e;
          int main(){
          cin>>n;
          for(i=1;i<n;i++) cin>>a[i];
          for(i=1;i<n;i++) if(a[i]>MAX) MAX=a[i];
          for(i=1;i<n;i++)
          tg=tg+a[i];
          d=MAX*(MAX+1)/2;
          e=d-tg;
          cout<<e;

          }


          • 5
            chienthancontent    11:11 a.m. 14 may, 2023

            Dùng mảng đánh dấu!