I am getting wrong answer in SAMER08D spoj.com/problems/SAMER08D/
Can someone please suggest me some test cases
My code is
#include <iostream>
#include <sstream>
#include <cstdio>
#include <climits>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <string>
#include <deque>
#include <bitset>
#include <map>
#include <set>
#include <stack>
#include <list>
#include <vector>
#include <queue>
#include <limits>
using namespace std;
/*define goes here*/
#define MP make_pair
#define PB push_back
#define VI vector<int>
#define VS vector<string>
#define VVI vector< VI >
#define VL vector<long long>
#define LL long long int
#define S string
#define R return
#define LLU unsigned long long int
#define SI ({int x;scanf("%d",&x);x;})
#define SC ({char x;scanf("%c",&x);x;})
#define SLL ({LL x;scanf("%lld",&x);x;})
#define SLLU ({LLU x;scanf("%llu",&x);x;})
#define ALL(c) (c).begin(), (c).end()
#define SORT(c) sort(ALL(c))
#define FOR(i,a,b) for (int i = (a); i < (b); ++i)
//#define print(x) cout<<#x<<" is "<<x<<endl;
#define PI acos(-1)
#define INF 1000000007
#define MAX numeric_limits<int>::max();
#define MIN numeric_limits<int>::min();
#define X first
#define Y second
int dp[1005][1005];
int main(int argc, char** argv){
int k=SI;
string x,y;
while(k!=0){
cin>>x>>y;
//cout<<x<<" "<<y<<"\n";
for(int i=0;i<=x.size();++i){
for(int j=0;j<k;++j){
dp[i][j]=0;
}
}
for(int i=0;i<k;++i){
for(int j=0;j<=y.size();++j){
dp[i][j]=0;
}
}
for(int i=k;i<=x.size();++i){
for(int j=k;j<=y.size();++j){
//cout<<x[i-4]<<x[i-3]<<x[i-2]<<x[i-1]<<" "<<y[j-4]<<y[j-3]<<y[j-2]<<y[j-1]<<"\n";
int flag=1;
int cota;
if(i<j)
cota=i;
else
cota=j;
int ll=0;
///////////////////////
FOR(l,1,cota+1){
if(x[i-l]==y[j-l])
ll++;
else
break;
}
if(ll>=k){
// cout<<ll<<"\n";
// cout<<dp[i-ll][j-ll]<<" "<<i-ll<<" "<<j-ll<<"\n";
// cout<<"got here \n";
int max=dp[i-k][j-k];
int maxEle=k;
FOR(m,k+1,ll+1)
if((dp[i-m][j-m]+m)>max+maxEle){
maxEle=m;max=dp[i-m][j-m];
}
dp[i][j]=max+maxEle;
}
else
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
}
cout<<dp[x.size()][y.size()]<<"\n";
// FOR(i,0,x.size()+1){
// FOR(j,0,y.size()+1){
// cout<<dp[i][j]<<" ";
// }
// cout<<"\n";
// }
// cout<<"\n\n\n\n";
cin>>k;
}
return 0;
}