Help me in solving ZCO14003 problem

My issue

check the error in my code

My code

#include <stdio.h>
void swap(int *x,int*y)
{
    int temp=*x;
    *x=*y;
    *y=temp;
}
void sort(int arr[],int n)
{
    int i,j;
    for(i=1;i<n;i++)
    {
        int key=arr[i];
        int m=i;
        for(j=i-1;j>=0;j--)
        {
            if(arr[j]>key)
            {
            swap(&arr[j],&arr[m]);
            m--;
            }
            else break;
        }
    }
}

int main(void) 
{
    int n;
    scanf("%d",&n);
    int arr[n];
    int i,j;
    for(i=0;i<n;++i)
    {
        scanf("%d",&arr[i]);
    }
    sort(arr,n);
    int fin[n];
    for(i=0;i<n;++i)
    {
        fin[i]=(arr[i])*(n-i);
    }
    sort(fin,n);
    printf("%d",fin[n-1]);
	return 0;
}


Problem Link: CodeChef: Practical coding for everyone

@shreyansh12ave
your logic is not right
plzz refer the following c code for better understanding

#include <stdio.h>

	int func(const void * a, const void * b){

    return(*(int*)a-*(int*)b);
}
int main()
{
	long long int N,sum=1;
	scanf("%lld",&N);
	long long int a[N];
	for(int i=0;i<N;i++)
	{
	    scanf("%lld",&a[i]);
	}
	qsort(a,N,sizeof(long long int),func);
	for(int i=0;i<N;i++){
	    if(sum<((N-i)*a[i])){
	        sum = (N-i)*a[i];
	    }
	}
	printf("%lld\n",sum);
}