mọi người có thể check giúp mình xem code của mình sai ở đâu dc không ạ.tks all
#include<iostream>
using namespace std;
int x[100]; int a[100]; int c[100];
int n,b;
int xopt[100];
int fopt;
void init();
bool check_weight();
void sum_up();
void back_track(int i);
void result();
void init(){
cout<<"so do vat:";
cin>>n;
cout<<"trong luong toi da:";
cin>>b;
cout<<"trong luong tung do vat: ";
for (int i=1;i<=n;i++){
cin>>a[i];
}
cout<<"gia tri tung do vat:";
for (int i=1;i<=n; i++){
cin>>c[i];
}
}
bool check_weight(){
int weight=0;
for (int i=1;i<=n;i++){
weight+=a[i]*x[i];
}
if (weight>b){
return false;
}
return true;
}
void sum_up(){
int sum=0;
for (int i=1;i<=n;i++){
sum+=x[i]*c[i];
}
if(fopt<sum){
fopt=sum;
for (int i=1;i<=n;i++){
xopt[i]=x[i];
}
}
}
void back_track(int i){
for (int j=0;j<=1;j++){
x[i]=j;
if (i==n){
if (check_weight()){
sum_up();
}
else back_track(i+1);
}
}
}
void result(){
cout<<"gia tri su dung toi uu:"<<fopt<<endl;
for (int i=1;i<=n;i++){
cout<<"phuong an toi uu"<<xopt[i]<<endl;
}
}
int main() {
init();
back_track(1);
result();
}