codeforces 1075B

B. Taxi drivers and Lyft

http://codeforces.com/problemset/problem/1075/B

 

二分查找相邻司机,比较距离后确定最终结果。

 

lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。返回地址减去起始地址begin,得到下标。

upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,找到返回该数字的地址,不存在则返回end。返回地址减去起始地址begin,得到下标。

 

#include 
using namespace std;

int out[100005];
int driver[100005];
int temp[200005];
int rider[100005];

int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=0;i>temp[i];
    int dr=0,ri=0;
    for(int i=0;i>t;
        if(t)
            driver[dr++]=temp[i];
        else
            rider[ri++]=temp[i];
    }
    memset(out,0,sizeof(out));
    for(int i=0;idriver[judge]-rider[i])
            out[judge]++;
        else
            out[judge-1]++;
    }
    for(int i=0;i

 

你可能感兴趣的:(cf)