please help why this code wrong answer on spoj …
#include<bits/stdc++.h>
using namespace std;
#define omax 23
#define nmax 81
#define INF 1000000003
typedef long long LL;
struct cylinder
{
int ovol;
int nvol;
int wt;
}cyl[1002];
LL dp[omax][nmax];
int oneed, nneed, n;
void solve()
{
for(int i=0;i<omax;i++)
{
for(int j=0;j<nmax;j++)
{
dp[i][j]=INF;
}
}
dp[0][0]=0;
for(int k=1;k<=n;k++)
{
for(int i=omax-1;i>=cyl[k].ovol;i–)
{
for(int j=nmax-1;j>=cyl[k].nvol;j–)
{
dp[i][j]=min(dp[i-cyl[k].ovol][j-cyl[k].nvol]+(LL)cyl[k].wt, dp[i][j]);
}
}
}
LL ans=INF;
for(int i=oneed;i<omax;i++)
{
for(int j=nneed;j<nmax;j++)
{
ans=min(ans, dp[i][j]);
}
}
printf("%lld\n", ans);
}
int main()
{
int test;
scanf("%d", &test);
while(test–)
{
scanf("%d %d", &oneed, &nneed);
scanf("%d", &n);
for(int i=1;i<=n;i++)
{
scanf("%d %d %d", &cyl[i].ovol, &cyl[i].nvol, &cyl[i].wt);
}
solve();
}
}