What's wrong in my code? it gives a runtime error(SIGSEGV)... https://www.codechef.com/LTIME71B/problems/ATTND .... ATTND problem

#include
#include
using namespace std;

int main() {
// your code goes here
int t;
cin>>t;int n;
while(t–)
{
cin>>n;int check[n];int k=0;int flag=0;
string arr[2n];
for(int i=0;i<2
n;i++)
{
cin>>arr[i];
}

     for(int i=0;i<n;i++)
    {
        check[i]=0;
    }
    for(int i=0;i<2*n;i++)
    {
        for(int j=i+1;j<2*n;j++)
        {
            if(arr[i]==arr[j] && i%2 == 0 && j%2 == 0)
            {check[k]=i;
            k++;
            check[k]=j;
            k++;
            }
            
            
        }
    }
    //k=k-1;
    //sort(check,check+k);
    int l;
    for(int i=0;i<2*n;i++)
    {
        for(int j=0;j<k;j++)
        {
            if(i==check[j] && i%2 == 0)
            { l=i;
                cout<<arr[l]<<" ";
                l++;
                cout<<arr[l]<<endl;
                flag=1;
                break;
            }
        }
        if(flag == 0 && i%2 == 0)
        cout<<arr[i]<<endl;
        
        flag=0;
    }
}
return 0;

}