При отправке решения отображается ошибка времени выполнения SIGKILL. Я не знаю, почему !!! Пожалуйста помоги...!! Я не собираюсь беспокоиться о TLE, я просто хочу знать, в чем причина SIGKILL. И после этого вы можете предложить мне любую более быструю процедуру для более эффективного решения этой проблемы. Пожалуйста, помогите, я тоже застрял в этой проблеме. долгое время, но я не могу найти, как появляется эта ошибка времени выполнения. Вот мой код::
#include<stdio.h>
//#define max(a,b) a>b?a:b
int max (int a,int b){
if (a>b)
return a;
else return b;
}
int V[500];
int W[500];
int F[501][1000001];
int knapsack(int n,int cap){
if (n==0 || cap==0){
F[n][cap]=0;
return 0;
}
else if (cap<1000001){
if (F[n][cap]!=0)
return F[n][cap];
else {
if (W[n-1]>cap){
F[n][cap]=knapsack(n-1,cap);
}
else {
F[n][cap]=max(V[n-1]+knapsack(n-1,cap-W[n-1]),knapsack(n-1,cap));
}
return F[n][cap];
}
}
else {
if (W[n-1]>cap){
return knapsack(n-1,cap);
}
else {
return max(V[n-1]+knapsack(n-1,cap-W[n-1]),knapsack(n-1,cap));
}
}
}
main() {
int k,n,i;
scanf("%d %d",&k,&n);
for (i =0 ;i<n ;i++){
scanf("%d %d",&V[i],&W[i]);
}
printf("%d\n",knapsack(n,k));
}