请大佬指点,我的程序样例都不能过,可以帮忙看看吗?
#include<bits/stdc++.h>
using namespace std;
int n,s,q,l[1000],r[1000],x[1000],y[1000],f[201][73],p;
void make(int k,int o){
n++;
cin>>x[n]>>y[n];
if(o==1) l[k]=n;
if(o==2) r[k]=n;
int u=n;
if(y[n]!=0){
make(u,1);
make(u,2);
}
}
void sc(int k){
if(l[k]==0&&r[k]==0){
f[k][0]=0;
for(int i=1;i<=y[k];i++){
f[k][i]=i*5+x[k]*2;
}
return;
}
if(l[k]!=0) sc(l[k]);
if(r[k]!=0) sc(r[k]);
for(int i=1;i<=72;i++){
for(int j=1;j<=72-i;j++){
if(f[k][i+j]>f[l[k]][i]+f[r[k]][j]+x[k]*2){
f[k][i+j]=f[l[k]][i]+f[r[k]][j]+x[k]*2;
}
}
}
}
int main(){
cin>>q;
make(1,1);
for(int i=1;i<=200;i++)
for(int j=1;j<=72;j++) f[i][j]=1000;
sc(2);
int i=72;
while(f[2][i]>=q) i--;
cout<<i;
}