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
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
l=int(input())
a=map(int,input().split())
print(((l+1)*l)//2-sum(a))
code
l=int(input())
a=map(int,input().split())
print(((l+1)*l)//2-sum(a))
Bài này 800 điểm thì hơi quá:v
đơ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)
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;
}
Dùng mảng đánh dấu!