class Solution {
public:
   int maxProfit(vector<int>& prices) {
        int d1=-prices[0],d2=0,d3=d1,d4=0;
        for(auto x:prices)
        {
            d1=max(d1,-x);
            d2=max(d2,d1+x);
            d3=max(d3,d2-x);
            d4=max(d4,d3+x);
        }
        return d4;
    }
};