My issue
the output is correct but where I am failing the test cases
My code
t=int(input())
for _ in range(t):
n=int(input())
events=[]
for c in range(n):
Si,Ei,Ci=map(int,input().split())
events.append((Si,Ei,Ci))
events.sort(key=lambda x:x[1])
dp=[0]*48
for event in events:
start,end,comp=event
for i in range(end,start,-1):
dp[i]=max(dp[i],dp[start]+comp)
print(max(dp))
Learning course: Dynamic programming
Problem Link: Event Organizer Practice Problem in Dynamic programming - CodeChef
@sivaramaraju21
this is my c++ code .
plzz refer it for better understanding.
ping me incase u get stuck at any point.
#include <bits/stdc++.h>
using namespace std;
int dp[2001];
int lowerbound(vector<vector<long long int>>& v,int sr)
{
int lo=0,hi=v.size()-1;
int ans=v.size();
while(lo<=hi)
{
int mid=lo+(hi-lo)/2;
if(v[mid][0]>=sr)
{
ans=mid;
hi=mid-1;
}
else
{
lo=mid+1;
}
}
return ans;
}
long long int cal(vector<vector<long long int>>& v,int i)
{
if(i>=v.size())
{
return 0;
}
if(dp[i]!=-1)
return dp[i];
int sr=v[i][1];
int l=lowerbound(v,sr);
return dp[i]=max(v[i][2]+cal(v,l),cal(v,i+1));
}
int main() {
// your code goes here
int t;
cin>>t;
while(t--)
{
int n,a,b,c;
cin>>n;
vector<vector<long long int>> v(n,vector<long long int>(3));
for(int i=0;i<n;i++)
{
for(int j=0;j<3;j++)
{
cin>>v[i][j];
}
}
sort(v.begin(),v.end());
memset(dp,-1,sizeof(dp));
cout<<cal(v,0)<<endl;
}
}