Help me in solving POSPREFS problem

My issue

My code

#include <iostream>
using namespace std;

int main() {
	int t;
	cin>>t;
	while(t--)
	{
	int n,k;
	cin>>n>>k;
	int nv=n-k;//negative values
	int a[n];
	for(int i=0;i<n;i++)
	{
	    a[i]=i+1;
	}
	for(int i=0;i<n && nv>0;i+=2)
	{
	    a[i]*=-1;
	    nv--;
	   // cout<<nv;
	}
	int i;
	if(n%2==0) 
	{
	    i=n-1;
	}
	else
	{
	i=n-2;
	}
	for(;i>=0 && nv>0;i=-2,nv--)
	{
	    a[i]*=-1;
	}
	
	for(int i=0;i<n;i++)
	{
	    cout<<a[i]<<" ";
	}
	cout<<endl;
	}
	return 0;
}

Problem Link: POSPREFS Problem - CodeChef