Code bị lỗi 3221225477

#include <bits/stdc++.h>
using namespace std;
int n,a[111],b[111],f[111];
int SortQ(int a[222], int b[222], int l, int r)
{
    long long mid = a[(l + r) / 2];
    int i = l;
    int j = r;
    int t;
    while(i <= j)
    {
        while(a[i] < mid)
            i++;
        while(a[j] > mid)
            j--;
        if(i <= j)
        {
            t = a[i];
            a[i] = a[j];
            a[j] = t;
            t = b[i];
            b[i] = b[j];
            b[j] = t;
            i++;
            j--;
        }
    }
    return i;
}
void quickSort(int a[222], int b[222], int l, int r)
{
    int i = SortQ(a, b, l, r);
    if(l < i - 1)
        quickSort(a, b, l, i-1);
    if(i < r)
        quickSort(a, b, i, r);
}
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    freopen("HEIGHT.inp","r",stdin);
    freopen("HEIGHT.out","w",stdout);
	cin >> n;
	for (int i=1; i<=n; i++)
    {
        cin >> a[i];
        b[i]=i;
    }
    quickSort(a,b,1,n);
    for (int i=1; i<=n; i++) f[i]=i-1;
    quickSort(b,f,1,n);
    for (int i=1; i<=n; i++) cout << f[i] << " ";
}

Cho em hỏi code trên em sai bị sai chỗ nào vậy ạ ?

Input là gì, output là gì, bạn kì vọng kết quả gì?

5 Likes

Lớp Lập trình tại trường học ABCcó N học sinh, các học sinh được đánh số từ 1 đến N. Học sinh i có chiều cao là Ai. Với mỗi học sinh i từ 1 đến N, hãy đếm xem có bao nhiêu học sinh có chiều cao thấp hơn so với học sinh i.
Dữ liệu
• Dòng đầu tiên gồm số nguyên N (1≤ N ≤10^5) - số học sinh trong lớp.
• Dòng thứ hai gồm một dãy N số nguyên A1,A2,…,AN (1≤ Ai ≤10^9) - cho biết chiều cao của các học sinh.

Kết quả
• In ra N số nguyên, số nguyên thứ i cho biết số học sinh có chiều cao thấp hơn học sinh i.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?