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

Xem PDF



Tác giả:
Dạng bài
Điểm: 800 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bạn nhận được tất cả các số từ \(1\) đến \(n\) trừ một số. Nhiệm vụ của bạn là tìm số bị thiếu đó.

Input

  • Dòng đầu tiên chứa một số nguyên \(n\).
  • Dòng thứ hai chứa \(n-1\) số. Các số khác nhau đôi một và mỗi số có giá trị từ \(1\) đến \(n\).

Output

  • In ra số còn thiếu.

Constraints

  • \(2 \le n \le 2 \cdot 10^5\)

Example

Sample input

5
2 3 1 5

Sample output

4


Bình luận

  • quocvinh1252012 8:10 p.m. 25 Tháng 3, 2025

    include <bits/stdc++.h>

    using namespace std;

    const int maxn=2e5+5;
    bool a[maxn];
    int n;

    int main() {
    cin >> n;
    fill (a, a+n, 0);
    for (int y, i=1; i<n; i++) { cin >> y;
    a[y]=1;
    }
    for (int i=1; i<n; i++) {
    if (a[i]==0) {
    cout << i;
    return 0;
    }
    }
    cout << n;
    return 0;
    }

    • Sangnguyen 9:32 p.m. 17 Tháng 3, 2025

      include<bits/stdc++.h>
      typedef long long ll;
      using namespace std;

      int main() {
      ll n,i;cin>>n;
      ll kq=n*(n+1)/2;
      ll mang=0;
      for(i=1;i<n;i++) { ll x;cin>>x;
      mang+=x;
      }
      cout<<kq-mang;
      return 0;
      }

      • ducphong 4:20 p.m. 19 Tháng 1, 2025

        code c++ cho ai cần:

        include <bits/stdc++.h>

        using namespace std;
        long long s1,s2,n,a;
        int main()
        {
        cin>>n;
        for (int i=1;i<n;i++) { cin>>a;
        s1+=a;
        }
        s2=(n+1)*n/2;
        cout<<s2-s1;
        return 0;
        }

        • LeLoiQuan2k12 9:32 p.m. 20 Tháng 8, 2024

          Bài này dễ mà
          Hint tính tổng từ 1 đến n rồi tính tổng phần tử nhập vào r trừ vô là xg

          • P2A2_16 8:39 p.m. 26 Tháng 7, 2024

            l=int(input())
            a=map(int,input().split())
            print(((l+1)*l)//2-sum(a))
            code

            • PhucMessi171011 6:02 p.m. 5 Tháng 6, 2024

              l=int(input())
              a=map(int,input().split())
              print(((l+1)*l)//2-sum(a))

              • Avocadorable 8:06 p.m. 22 Tháng 2, 2024
                N = int(input())
                
                sumtoN = N * ((1+N)/2)
                actualSum = sum(list(map(int, input().split())))
                
                print(int(sumtoN - actualSum))
                
                • NTT_36 1:00 p.m. 15 Tháng 10, 2023

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

                  • quann 6:33 p.m. 7 Tháng 9, 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)

                    • xthabao1 9:00 a.m. 2 Tháng 8, 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;

                      }

                      • 1 bình luận nữa