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ớ:
512M
Input:
stdin
Output:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
Python, Scratch
Trong một hệ thống theo dõi dữ liệu, mỗi mục được ghi lại dưới dạng một danh sách các giá trị. Ban quản lý muốn loại bỏ tất cả các mục xuất hiện ít nhất trong danh sách để tập trung vào các mục phổ biến hơn.
Hãy viết chương trình xác định và loại bỏ tất cả các phần tử có số lần xuất hiện ít nhất trong danh sách.
Dữ liệu vào
- Dòng đầu tiên chứa số tự nhiên ~N~ là số lượng phần tử trong danh sách ~(1≤N≤100)~.
- Dòng thứ hai chứa ~N~ số tự nhiên là các phần tử của danh sách.
Dữ liệu ra
- Một dòng chứa danh sách các số còn lại sau khi xóa tất cả các số xuất hiện ít nhất và thứ tự không bị xáo trộn. Nếu danh sách rỗng, in ra
-1
.
Ví dụ
Input 1
10
3 1 2 3 4 2 4 5 5 3
Output 1
3 2 3 4 2 4 5 5 3
Note
- Số ~1~ có số lần xuất hiện ít nhất nên xóa số ~1~ khỏi danh sách.
Input 2
5
3 3 3 3 3
Output 2
-1
Note
- Số ~3~ có số lần xuất hiện ít nhất nên xóa hết các số ~3~. Danh sách không còn phần tử nào.
Input 3
9
5 3 5 3 2 5 2 1 1
Output 3
5 5 5
Note
- Số ~1~, ~2~ và ~3~ có số lần xuất hiện ít nhất nên xóa hết các số ~1~, ~2~ và ~3~.
Bình luận
code nè:
from collections import Counter
N = int(input()) arr = list(map(int, input().split())) freq = Counter(arr) minfreq = min(freq.values()) res = [x for x in arr if freq[x] > minfreq] print(' '.join(map(str, res)) if res else '-1') thuhien09cvh2
hi
cứu tôi với khó quá