为什么将memset那行代码注释掉,把f[i]=1那行代码取消注释就成对的了,原来的代码哪里有问题
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=100010;
int n , m;
int f[N];
struct Node
{
int x , y , t;
}a[N];
int main()
{
cin>>n>>m;
for(int i=1 ; i<=m ; i++) cin>>a[i].t>>a[i].x>>a[i].y;
memset(f , 1 , sizeof f);
for(int i=1 ; i<=m ; i++){
for(int j=1 ; j<i ; j++)
{
int distance = abs(a[i].x-a[j].x) + abs(a[i].y-a[j].y);
if(distance <= a[i].t-a[j].t) f[i]=max(f[i],f[j]+1);
}
}
int res = 0;
for(int i=1 ; i<=m ; i++) res = max(res,f[i]);
cout<<res<<endl;
return 0;
}