Problem Code: JAVELIN
I am not very comfortable with c++ and working with pointers and arrays. can you please help me with the following code? It’s giving WA.
#include <iostream>
#include <algorithm>
using namespace std;
int getIndexOfMax(int *arr,int n){
int ind=0,max=*arr;
for(int i=1;i<n;i++){
arr++;
if(*arr>max){max=*arr;ind=i;}
}
return ind;
}
string stringIt(int *arr,int c){
string s=""+to_string(*arr);
for(int i=1;i<c;i++){
s+=to_string(*arr++)+" ";
}
return s;
}
void merge(int *arr1,int *arr2,int *arr3,int c1,int c2){
*arr3=*arr1;
for(int i=0;i<c1;i++){
arr3++;arr1++;
*arr3=*arr1;
}
arr3=arr2;
for(int i=0;i<c2;i++){
arr3++;arr2++;
*arr3=*arr2;
}
}
int main() {
// your code goes here
int t;
cin>>t;
string L[t];
for(int i=0; i<t;i++){
int n,m,x; cin>>n>>m>>x;
int arr[n],arr1[x],arr2[m-x];
int c1=0,c2=0;
for(int j=1; j<=n;j++){
int a; cin>>a;
if(a>=m){
if(c1<x-1){arr1[c1]=j;c1+=1;}
else{arr2[c2]=j;c2+=1;}
arr[j-1]=0;}
else{arr[j-1]=a;}
}
if (c1+1==x){
int arr3[c1+c2+2];
merge(arr1,arr2,arr3,c1+1,c2+1);
sort(arr3,arr3+c1+c2+2);
L[i]=stringIt(arr3,c1+c2+2)+"\n";
}
else{
while(c1<x-1){
arr1[c1]=getIndexOfMax(arr,n)+1;
c1+=1;
}
sort(arr1,arr1+c1+1);
L[i]=stringIt(arr1,c1+1)+"\n";
}
}
for (int i=0; i<t;i++){
cout<<L[t];
}
return 0;
}
thank you