比赛 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;
}