CF Gym 100187M Heaviside Function(二分)

题意:给你一个函数和一些系数,给你一堆询问,求函数值。

一个一个算肯定T,根据s的符号,分成两组,然后,二分就行啦。

我写的迷之四分,当时比较沙茶,写了个四分

#include<cstdio>

#include<algorithm>

using namespace std;

const int maxn = 200000+1;

int A[maxn];

int B[maxn];

int sz1,sz2;





int main()

{

   // freopen("in.txt","r",stdin);

    int n;

    scanf("%d",&n);

    sz1 = sz2 = 0;

    while(n--){

        int s,a;

        scanf("%d%d",&s,&a);

        if(s>0){

            A[sz1++] = a;

        }else{

            B[sz2++] = -a;

        }

    }

    sort(A,A+sz1);

    sort(B,B+sz2);



    int m;

    scanf("%d",&m);

    while(m--){

        int x;

        scanf("%d",&x);

        printf("%d\n",upper_bound(A,A+sz1,x)-A+sz2-(lower_bound(B,B+sz2,x)-B));

    }

    return 0;

}

 

你可能感兴趣的:(function)