请问为什么会错误一个测试点?(语言-c++)

t\题目如下:

img

img

错误代码如下:
#include<bits/stdc++.h>
using namespace std;
int main() {
long long n,r;
cin>>n>>r;
long long u,v;
int sheepa[n];
int sheepb[n];
int sheep[n];
for(int i=0;i<n;i++){
cin>>sheepa[i]>>sheepb[i]>>sheep[i];
}
cin>>u>>v;
long long q=u+r;
long long w=v+r;
long long sum=0;
for(int i=0;i<n;i++){
if(q>sheepa[i]&&w>sheepb[i]){
sum=sum+sheep[i];
}
}
cout<<sum;
return 0;
}

因为数组在程序运行之前就确定多少内存,而n是程序运行时才确定的值,编译器为数组分配内存大小的时候不知道多大的数组所以报错,可以使用C++的动态数组vector解决这个问题,至于vector如何使用可以百度,vector非常简单易用