December 23, 2018
Count the number of Advanced
Threads: For an array of n integers. Plate count in how many different numbers and each number appears many times in the array. The number in the array is between 0 come 1000. n <= 100.
Input: The first line is an integer n. The second line 2 n is an integer array, of numbers separated by spaces.
Output: The first line contains the number m is the number of different, Next m lines each containing 2 numbers separated by spaces, respectively, and the amount of occurrence of which. m it appears in the order so that the correct number order as the original sequence.
For example:
input: 4 4 3 3 2 output: 3 4 1 3 2 2 1
You are not logged in? Log in to Submit Now!
14 Comments
Add a Comment
You must be logged in to post a comment.
Ad cho hỏi, sao mình up code từ sáng đến bây giờ toàn “In Queue” yes?
Mình chạy trên máy thì ok rồi.
Em bị Error connect suốt ạ.
Sorry, hiện tại hệ thống đã hoạt đọng bình thường rồi nhé.
cái test 3 số không em chạy trên code block giống như cái output của a mà sao chạy trên đây nó khác vậy ạ?
Anh nghĩ do code của em có vấn đề ở đoạn này khi g = -1 thì làm gì có a[g] do vậy hệ thống dừng tại đây và em chỉ in ra dòng đầu tiên là số 1.
for(g=-1;g < i;g++){
if(a[i]==a[g]){
count1=0;
break;
}else
count1=1;
}
chạy trên dev c được mà test lại bị runtime
bạn thử lại hoặc đọc lỗi xem báo gì nhé.
cứ Runtime Error (SIGSEGV) thôi anh, em nghĩ là chạy lâu quá nhứng tối ưu hóa mãi vẫn không đc.
Viết bằng Python 3, bài nâng cao còn dễ hơn bài bình thường nữa
cho em xin code ngắn gọn hơn tí được k ạ
bài làm của em vừa dài mà vừa rối mắt quá
mặc dù đã accepted 🙁
#include
int main(){
int i, j, n, tg;
scanf(“%d”, &n);
int a[n], b[n];
for(i = 0; i < n; i++){
scanf("%d", &a[i]);
b[i] = a[i];
}
for(i = 0; i < n; i++){ // sap xep tang dan de dem so luong so khac nhau
for(j = i+1; j a[j]){
tg = a[i];
a[i] = a[j];
a[j] = tg;
}
}
}
int dem = 1, Index = 1;
for(i =0; i < n-1; i++){ // dem so luong cap
if(a[i] – a[i+1] != 0) dem++;
}
printf("%d\n", dem);
// xet cac so theo mang b[i];
for(i = 0; i < n; i++){
Index = 1;
for(j = i+1; j < n; j++){
if(b[i] != 1001 && b[j] == b[i] ){
Index++;
b[j] = 1001;
}
}
if(b[i] != 1001) printf("%d %d\n", b[i], Index);
}
return 0;
}
Bạn có thể dùng cách đánh dấu mảng nhé.
tuc la nhu the nao a
Bài này hoàn toàn giống bài đếm số lượng số . Ad sửa lại bài đếm số lượng số để giảm bớt độ khó nhé!!!
Mình nhầm rồi