Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Tác giả:
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Cho mảng số nguyên A[] gồm N phần tử, hãy đếm xem có bao nhiêu giá trị khác nhau trong mảng?
Tham khảo lý thuyết mảng đánh dấu : [C++]. Mảng Đánh Dấu
Đầu vào
Dòng đầu tiên là số nguyên dương N
Dòng thứ 2 gồm N số nguyên viết cách nhau một vài khoảng trắng
Giới hạn
1<=N<=1000
0<=A[i]<=10^6
Đầu ra
In ra số lượng các giá trị khác nhau xuất hiện trong mảng
Ví dụ :
Input 01
5
3 9 4 0 9
Output 01
4
Input 02
5
28 28 28 28 28
Output 02
1
Bình luận
Mọi người cho hỏi em sai ở đâu ạ. 10 test case cuối em bị "Lỗi Runtime (RE) (segmentation fault)". Em cảm ơn ạ.
Em đã Fix được lỗi trên. Lỗi là do giá trị của các phần tử trong mảng a[] vượt quá giới hạn của mảng m[] ( em để là 1001 ). Để Fix thì em cho m[1000001] và vòng For khi đếm cho n < 1000001.
include <iostream>
include <stack>
include <set>
include <vector>
include <cmath>
using namespace std; int main() { iosbase::syncwith_stdio(false); cin.tie(NULL); int n; cin >> n; set <int> se; int cnt = 0; for(int i=0; i<n; i++){ int x; cin >> x; se.insert(x); } for(auto z : se){ cnt++; } cout << cnt; return 0; }
include<stdio.h>
}
include <bits/stdc++.h>
using namespace std; int main(){ int n; cin >> n; int a[1000006]; for ( int i = 0; i < n; i++){ cin >> a[i]; } for (int i = 0; i < n; i++){ int check = true; for (int j = 0; j < i; j++){ if (a[i] == a[j]){ check = false; break; } } if(check == true){ cout << a[i] << endl; } } } em sai cho nao vay a
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.