Help me in solving CONCUSSIVE problem

My issue

can you help me to find the mistake in the code

My code

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

int main()
{
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        vector<int>v(n),res(n);
        for(int i=0;i<n;i++) cin>>v[i];
        sort(v.begin(),v.end());
        int f=0,j=0,k=0;
        for(int i=0;i<n;i++){
            if(!f){
                res[i]=v[j];
                j++;
            }
            else{
                res[i]=v[n-1-k];
                k++;
            }
            f=!f;
        }
        f=0;
        for(int i=1;i<n-1;i++){
            if(!((res[i]>res[i-1] && res[i]>res[i+1] ) || (res[i]<res[i-1] && res[i]<res[i+1]))) f=1;
        }
        j=0;k=0;
        if(f){
            for(int i=0;i<n;i++){
            if(!f){
                res[i]=v[j];
                j++;
            }
            else{
                res[i]=v[n-1-k];
                k++;
            }
            f=!f;
        }
        }
        f=0;
        for(int i=1;i<n-1;i++){
            if(!((res[i]>res[i-1] && res[i]>res[i+1] ) || (res[i]<res[i-1] && res[i]<res[i+1]))) f=1;
        }
        if(f) cout<<-1<<endl;
        else {
            for(auto it:res) cout<<it<<" ";
            cout<<endl;
        }
    }
}

Problem Link: CONCUSSIVE Problem - CodeChef