如何在这个股票利润最大化代码中实现卖空条件?

How to achieve shortsell condition in this stock profit maximisation code?

这是我编写的代码,用于在价格最低时买入股票,在价格最高时卖出。我想在这里实施卖空条件,就像我想在购买之前卖出一样。 考虑一周的这组股票价格。

3 10 4 1 9 3 2

现在我想在10的时候卖出,1的时候买入,实现9的盈利。

但是我的代码在价格为1时买入并在9时卖出。我可以通过搜索最大数量和最小数量来获得最大利润。但想通过下面的逻辑实现,想知道下面的什么条件不允许我做空。

    long  profit=a[1]-a[0];
    long  minima=a[0];
    for(long  i=1; i<noOfDays; i++)
    {
        if(a[i]-minima>profit)
        {
            profit=a[i]-minima;
        }
        
        if(a[i]<minima)
        {
            minima=a[i];
        }
    }
    cout<<profit;

如果你允许卖空,你的利润总是=max(array) - min(array),无一例外。