比赛 |
2024暑假C班集训B |
评测结果 |
AAAAAATTTTTTTTTTTTTT |
题目名称 |
天天爱射击 |
最终得分 |
30 |
用户昵称 |
wdsjl |
运行时间 |
56.057 s |
代码语言 |
C++ |
内存使用 |
8.54 MiB |
提交时间 |
2024-07-11 11:26:19 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N = 200010;
long long ans,used[N],n,m,c[N],x_1[N],x_2[N],s[N];
int lowbit(long long x){
return x&-x;
}
void add(long long x,long long v){
for(;x<=N;x+=lowbit(x))c[x]+=v;
}
long long ask(long long x){
long long ans=0;
for(;x;x-=lowbit(x))ans+=c[x];
return ans;
}
int main(){
freopen("shooting.in","r",stdin);
freopen("shooting.out","w",stdout);
scanf("%lld%lld",&n,&m) ;
for(int i=1;i<=n;i++){
scanf("%lld%lld%lld",&x_1[i],&x_2[i],&s[i]);
}
long long sh;
for(int i=1;i<=m;i++){
ans=0;
scanf("%lld",&sh);
add(sh,1);
for(int j=1;j<=n;j++){
if(used[j]==0&&(ask(x_2[j])-ask(x_1[j]-1))>=s[j]){
used[j]++;
ans++;
// cout<<"TTT"<<j<<endl;
}
}
printf("%lld\n",ans);
}
return 0;
}