Help me in solving POGOSTCK problem

My issue

i am getting wrong answers for the hidden testcases

My code

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

int f(int ind,int k,vector<int> &arr)
{
    if(ind<0)
    return 0;
    
    /*int notpick=f(ind-1,k,arr);
    int pick=INT_MIN;
    if(ind>=k)
        pick=arr[ind]+f(ind-k,k,arr);
    
    return max(pick,notpick);*/
    return arr[ind]+f(ind-k,k,arr);
}
int main() {
	// your code goes here
	int t,n,k;
	cin>>t;
	for(int i=0;i<t;i++)
	{
	    cin>>n>>k;
	    vector<int> arr(n);
	    for(int ind1=0;ind1<n;ind1++)
	    {
	        cin>>arr[ind1];
	    }
	    
	    int maxi=INT_MIN;
	    for(int ind1=0;ind1<n;ind1++)
	    {
	        int sum=0;
	        for(int ind2=ind1;ind2<n;ind2+=k)
	        {
	            if(sum+arr[ind2]>=sum)
	                sum=sum+arr[ind2];
	            else
	                break;
	        }
	        maxi=max(maxi,sum);
	    }
	    
	    cout<<maxi<<endl;
	}

}

Problem Link: Pogo Stick Competition Practice Coding Problem - CodeChef

@codebeginner14
here bro plzz refer my code for better understanding

#include <bits/stdc++.h>
using namespace std;
int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--)
	{
	    long long int n,k;
	    cin>>n>>k;
	    long long int a[n];
	    map<long long int,long long int> mpt;
	    map<pair<long long int,long long int>,long long int>mp;
	    for(int i=0;i<n;i++)
	    {
	        cin>>a[i];
	    }
	    for(int i=0;i<k;i++)
	    {
	        long long int sm=0;
	        for(int j=i;j<n;j+=k)
	        {
	            sm+=a[j];
	            mp[{i,j}]=sm;
	        }
	        mpt[i]=sm;
	    }
	    long long int ans=INT_MIN;
	    for(int i=0;i<n;i++)
	    {
	        ans=max(ans,mpt[i%k]-mp[{i%k,i-k}]);
	    }
	    cout<<ans<<endl;
	}

}