Cod sursa(job #3289755)

Utilizator amunnumeVlad Patrascu amunnume Data 28 martie 2025 13:30:40
Problema Grupuri Scor 64
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
const int N=1e5+5;
int n,i,j,k,v[N],st,dr,mid,sol;
long long s[N];
bool vrf(int r,int k)
{
    int st=1,dr=n,mid,sol=0;
    while(st<=dr)
    {
        mid=(st+dr)>>1;
        if(v[mid]<r)
        {
            st=mid+1;
        }
        else
        {
            sol=mid;
            dr=mid-1;
        }
    }

    int x=n;
    if(sol)
    {
        k-=(n-sol+1);
        x=sol-1;
    }//cout<<r<<' '<<sol<<' '<<n-sol+1<<'\n';
    return (s[x]>=1ll*r*k);
}
signed main()
{
    fin>>k>>n;
    for(i=1;i<=n;++i)
    {
        fin>>v[i];
        s[i]=s[i-1]+v[i];
    }
    st=1; dr=1e6;
    while(st<=dr)
    {
        mid=(st+dr)>>1;
        if(vrf(mid,k))
        {
            sol=mid;
            st=mid+1;
        }
        else
        {
            dr=mid-1;
        }
    }
    fout<<sol;
    return 0;
}