Help me in solving REVSORT problem

My issue

My code

#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int t,n,x;
	cin>>t;
	while(t--){
	    cin>>n>>x;
	    int a[n];
	    int sum=0;
	    for(int i=0;i<n;i++){
	        sum+=a[i];
	        if(sum>k){
	            
	        }
	    }
	}
	return 0;
}

Problem Link: CodeChef: Practical coding for everyone

@deepakjdh31
The logic is if u found any two pair that are not in order then the maximum sum will be the sum of last and second last maximum number and if their sum is lesser than x then it would be possible else it is not possible .
i have coded my logic in much simpler way hope u will get it.

#include <bits/stdc++.h>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--)
	{
	    int n,x;
	    cin>>n>>x;
	    int a[n];
	    int mx=0,ans=0;
	    for(int i=0;i<n;i++)
	    {
	        cin>>a[i];
	        if(a[i]<mx)
	        {
	            ans=max(ans,mx+a[i]);
	        }
	        else
	        mx=max(mx,a[i]);
	    }
	    if(ans<=x)
	    cout<<"YES";
	    else
	    cout<<"NO";
	    cout<<endl;
	}
	return 0;
}