#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 5e4 + 10;
int t,n,m;
struct node{
int a,b;
}e[maxn];
int c[maxn];
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin >> t;
while(t--){
cin >> n >> m;
for(int i = 1; i <= n; i++){
cin >> e[i].a >> e[i].b;
}
memset(c,0,sizeof(c));
for(int i = 1; i <= m; i++){
int x;cin >> x;c[x]++;
}
for(int i = n; i >= 1; i--){
c[i] += c[i + 1];
e[i].b += c[i];
}
int maxa = 0,maxb = 0,cnt = 0;
for(int i = n; i >= 1; i--) {
if (!e[i].a) {
maxa = max(maxa, e[i].b);
if (maxb > e[i].b)
cnt++;
} else {
maxb = max(maxb, e[i].b);
if (maxa > e[i].b)
cnt++;
}
}
cout << n - cnt << endl;
}
return 0;
}
糖糖别胡说,我真的不是签到题目
最新推荐文章于 2021-05-21 21:26:11 发布