请问这种问题会不会可能影响NOIP考试,请问神犇们我有没有犯什么被高版本编译器容错的问题,谢谢
#include <iostream>
#include <cstdio>
using namespace std;
bool is[32001][61][61];
int f[32001][61];
struct item{
int v,p,q;
}a[700];
int main()
{
int n=0,m=0;
//freopen("1.txt","r",stdin);
cin>>m>>n;
for (int i=1;i<=n;i++)
cin>>a[i].v>>a[i].p>>a[i].q;
for (int i=1;i<=n;i++)
{
for (int j=m;j>=0;j--)
{
if (is[j][i-1][a[i].q]==true || a[i].q==0 && j+a[i].v<=m)
{
if (f[j+a[i].v][i]<f[j][i-1]+a[i].v*a[i].p)
{
f[j+a[i].v][i]=f[j][i-1]+a[i].v*a[i].p;
for (int k=1;k<=i-1;k++)
{
is[j+a[i].v][i][k]=is[j][i-1][k];
}
is[j+a[i].v][i][i]=true;
}
}
else if (j+a[i].v+a[a[i].q].v<=m)
{
if (f[j+a[i].v+a[a[i].q].v][i]<f[j][i-1]+a[i].v*a[i].p+a[a[i].q].v*a[a[i].q].p)
{
f[j+a[i].v+a[a[i].q].v][i]=f[j][i-1]+a[i].v*a[i].p+a[a[i].q].v*a[a[i].q].p;
for (int k=1;k<=i-1;k++)
{
is[j+a[i].v+a[a[i].q].v][i][k]=is[j][i-1][k];
}
is[j+a[i].v+a[a[i].q].v][i][i]=true;
is[j+a[i].v+a[a[i].q].v][i][a[i].q]=true;
}
}
if (f[j][i]<f[j][i-1])
{
f[j][i]=f[j][i-1];
for (int k=1;k<=i-1;k++)
is[j][i][k]=is[j][i-1][k];
}
}
}
int answer=0;
for (int i=1;i<=m;i++)
answer=max(f[i][n],answer);
cout<<answer;
}