[Mảng 1 Chiều Cơ Bản]. Bài 3. Số nhỏ nhất

Xem dạng PDF

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:
28Tech
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 trong mảng của bạn có bao nhiêu số có cùng giá trị nhỏ nhất. Ví dụ mảng A = {1, 2, 1, 3, 5} thì số nhỏ nhất trong mảng là 1 xuất hiện 2 lần.


Đầ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

-10^3<=A[i]<=10^3


Đầu ra

In ra đáp án của bài toán


Ví dụ :

Input 01
5
-854 600 222 472 207
Output 01
1
Input 02
5
28 28 28 28 29
Output 02
4

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    zuijayofficial  đã bình luận lúc 20, Tháng 5, 2025, 12:56

    include <bits/stdc++.h>

    define ll long long

    using namespace std; int main(){ int n; cin>>n; int a[n]; map<int, int> mp; for(int i=0; i<n; i++){ cin>>a[i]; mp[a[i]]++; } int kq=0; for(int i=0; i<n; i++){ kq=min(kq, a[i]); } cout<<mp[kq]; return 0; } sai test 31 là sai chỗ nào ạ


    • 0
      bengokyeuanh99  đã bình luận lúc 20, Tháng 5, 2025, 15:58

      Bug do khởi tạo kq = 0 — khi mảng không chứa 0 (vd: [5,6,7]), min(kq, a[i]) trả về 0 sai logic. Cách fix: luôn khởi tạo biến cực trị (min/max) bằng a[0] để đảm bảo nằm trong tập dữ liệu thực tế, tránh hardcode magic number


  • -1
    bengokyeuanh99  đã bình luận lúc 10, Tháng 4, 2025, 3:36

    import sys import logging from typing import List

    logging.basicConfig(level=logging.INFO, format='[%(levelname)s] %(message)s')

    def countminoccurrences(arr: List[int]) -> int: if not arr: return 0

    min_val = arr[0]
    count = 1
    for num in arr[1:]:
        if num < min_val:
            min_val = num
            count = 1
        elif num == min_val:
            count += 1
    return count
    

    def parseinput() -> List[int]: try: nline = sys.stdin.readline() if not nline: raise ValueError("Không có dòng nhập số lượng phần tử") n = int(nline.strip())

        arr_line = sys.stdin.readline()
        if not arr_line:
            raise ValueError("Không có dòng nhập mảng")
    
        arr = list(map(int, arr_line.strip().split()))
        if len(arr) != n:
            raise ValueError(f"Số lượng phần tử ({len(arr)}) không khớp với n = {n}")
        return arr
    
    except ValueError as ve:
        logging.error(f"Lỗi nhập liệu: {ve}")
        sys.exit(1)
    except Exception as e:
        logging.exception("Lỗi không xác định")
        sys.exit(1)
    

    def main(): arr = parseinput() result = countmin_occurrences(arr) print(result)

    if name == "main": main()


  • 0
    duc_thanh_0111  đã bình luận lúc 9, Tháng 4, 2025, 18:06

    int n; cin >> n;

    vector<int> a(n);
    
    for (int i=0; i&lt;n; i++) {
        cin >> a[i];
    }
    
    int count = 1;
    int init_idx = 0;
    
    for (int i = 1; i < n; i++) {
        if (a[init_idx] > a[i]) {
            init_idx = i;
            count = 1;
        } else if (a[init_idx] == a[i]) {
            count ++;
        }
    }
    cout << count;
    

  • -3
    thanhnay29  đã bình luận lúc 8, Tháng 2, 2025, 9:34

    buon cuoi vai


    • 1
      BaoHuangg  đã bình luận lúc 12, Tháng 3, 2025, 8:35

      code thieu nhi thi y kien gi


  • -2
    cocomelon_0202  đã bình luận lúc 14, Tháng 1, 2025, 9:53

    include <bits/stdc++.h>

    using namespace std;

    define rw(name) if (fopen(name".inp", "r")) freopen(name".inp", "r", stdin), freopen(name".out", "w", stdout)

    define ll long long

    define el "\n"

    define ios iosbase::syncwith_stdio(false), cin.tie(nullptr), cout.tie(nullptr);

    const ll maxn=1e7;

    ll x,n, minn;

    int main() { ios; rw("test");

    cin>>n;
    
    map<ll,ll> mp;
    minn=LLONG_MAX;
    for (ll i=1; i<=n; i++) cin>>x, mp[x]++, minn=min(minn, x);
    
    cout<&lt;mp[minn];
    
    
    
    return (0^0);
    

    }


  • -3
    Bondy002008  đã bình luận lúc 16, Tháng 9, 2024, 6:36

    include<bits/stdc++.h>

    using namespace std;

    int main() { int n,j=0,d=1; cin>>n; int a[n]; for (int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); for (int i=0;i<n;i++){ if (a[i]==a[i+1])d++; else break; } cout<<d; } Code tui như này nè


  • -4
    Zzbopro123Zz  đã bình luận lúc 13, Tháng 7, 2024, 15:24

    include <bits/stdc++.h>

    using namespace std; int findmin(const vector<int> &arr) { int minvalue = numericlimits<int>::max(); for (int num : arr) { if (num < minvalue) { minvalue = num; } } return minvalue; } int main() { iosbase::syncwithstdio(false); cin.tie(nullptr); cout.tie(nullptr); int n; cin >> n; vector<int> arr(n); for (int i = 0; i < n; ++i) { cin >> arr[i]; } int minvalue = findmin(arr); int count = 0; for (int i = 0; i < n; i++) { if (arr[i] == minvalue) { count++; } } cout << count << endl; return 0; } code của tui kiểu :< sao có thể ngắn như mn được nhỉ


  • -3
    PhamBaDat_k5  đã bình luận lúc 25, Tháng 5, 2024, 3:35

    include <bits/stdc++.h>

    using namespace std; int main() { int n; cin >> n; int a[3000]; for (int i = 0; i < n; i++) { cin >> a[i]; } int cnt = 0; int res = INT_MAX; for (int i = 0; i < n; i++) { if (a[i] < res) { cnt = 0; res = a[i]; } if (a[i] == res) { cnt++; } } cout << cnt <<endl;

    return 0;
    

    }

    Code tui như này .-.


  • -6
    NTH11112222  đã bình luận lúc 25, Tháng 5, 2024, 2:58

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -2
    long_674  đã bình luận lúc 10, Tháng 5, 2024, 6:58

    ai xem giups bai minh sai gif khong,testcase dung 30/31


    • -3
      Malaze_KL  đã bình luận lúc 4, Tháng 6, 2024, 6:17

      min = -10000 ông bỏ dấu trừ đi; if(a[i]<=min) min=a[i]; mới đúng nhé


    • -3
      Malaze_KL  đã bình luận lúc 4, Tháng 6, 2024, 6:00

      hmm