M题,要让所有元素都变成相同的,最简单的方法就是,从左向右扫,如果右边的数大于左边的数,把所有左边的数补齐至右边的数,记录最右边补齐的值以及与右边未补齐的值的最小值

```#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
typedef unsigned long long ull;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
template<typename T> using min_heap=priority_queue<T,vector<T>,greater<T>>;
template<typename T> using max_heap=priority_queue<T>;
template<typename T> T isqrt(const T &x){T y=sqrt(x+2); while(y*y>x) y--; return y;}
const int INF = 0x7f7f7f7f7f7f;
int a[100005];
void solve()
{
	int n,sum = 0;
	cin >> n;
	for(int i = 1;i <= n;i++)
	{
		cin >> a[i];
	}
	int maxn = a[1],minn = INF,k,pre = 0;
	for(int i = 2;i <= n;i++)
	{
		maxn = max(maxn,a[i]);
		if(a[i-1] < a[i])
		{
			sum += a[i] - a[i-1];
            minn = a[i];
            k = i;
		}
	}
    for(int i = k;i <= n;i++)
    {
        minn = min(minn,a[i]);
    }
	cout << sum + maxn - minn << endl;
    return;
}

signed main() 
{
    ios::sync_with_stdio(false),cin.tie(0);
    int tt;
    cin >> tt;
    while(tt--)
    {
        solve();
    }
    return 0;
}