求助,自己编译运行能过实例,但最后只得10分
查看原帖
求助,自己编译运行能过实例,但最后只得10分
1090191
ou_yang_楼主2024/3/26 18:52
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
long long n,m;
long long binary_search(vector<long long> a)
{   long long max=*(max_element(a.begin(),a.end()));
    long long  high=max;
    long long low=0;
    long long  sum=0;
    while(low<=high) {
       long long sum=0;
       long long  hight=low+(high-low)/2;
       for(long long i=0;i<n;i++) {
        long long  temp=a[i]>hight?a[i]-hight:0;
        sum+=temp;
       }
       if(sum>m) {
           low =hight+1;}
       else if(sum<m){
           high=hight-1; }
       else{
           return hight;
       }
    }
    return -1;
}
int main(){ 
    vector <long long> a(1e6+5);
    cin>>n;
    cin>>m;
    for(long long i=0;i<n;i++)
    {
        cin>>a[i];
    }
    long long k =binary_search(a);
    cout<<k;
    return 0;
}
2024/3/26 18:52
加载中...