注意给a[ 0 ]赋一个最小值
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
int t,n,m,a[N],cnt[N];
int main(){scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}memset(cnt,0,sizeof cnt);while(m--){int x,y;scanf("%d%d",&x,&y);cnt[x]++,cnt[y]--;}int f=1;a[0]=-0x3f3f3f3f;for(int i=1;i<=n;i++){a[i]+=cnt[i];if(a[i]<a[i-1]){puts("No");f=0;break;} }if(f) puts("Yes");}return 0;
}