TLE求救
查看原帖
TLE求救
1329138
luogu_hezhenmin1楼主2025/1/5 20:22
#include<bits/stdc++.h>
using namespace std;
int n,m,t;
const int N=2e5+10;
struct node{
    int x,ym;
    short v;
}blc[N];
bool cmp(node x,node y){
    return x.x>y.x;
}
bool cmp1(node x,node y){
    return x.ym<y.ym;
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>n;
    for (size_t i = 1; i <= n; i++){
        auto&[x,ym,v]=blc[i];
        cin>>x>>v;
    }
    sort(blc+1,blc+n+1,cmp);
    int l0=-1,l1=-1;
    for (size_t i = 1; i <= n; i++){
        auto&[x,ym,v]=blc[i];
        if(v==1){
            l1=x;
            if(l0==-1) ym=-1;
            else ym=(l0-l1+1)/2;
        }
    }
    sort(blc+1,blc+n+1,cmp1);
    cin>>m;
    while (m--){
        cin>>t;
        int l=1,r=n;
        while(l<r){
            int mid=(l+r)>>1;
            if(blc[mid].ym<=t) l=mid;
            else r=mid-1;
        }
        if(blc[l].ym<=t) l--;
        cout<<l<<'\n';
    }
    return 0;
}
2025/1/5 20:22
加载中...