Cod sursa(job #2003750)

Utilizator stefdascalescuStefan Dascalescu stefdascalescu Data 23 iulie 2017 21:02:14
Problema Grupuri Scor 38
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<bits/stdc++.h>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
long long n,k,v[100002],ad,nr,s[100002];
int main()
{
    f>>k>>n;
    for(int i=1;i<=n-k;++i)
        f>>nr,ad+=nr;
    for(int i=1;i<=k;++i)
        f>>v[i],s[i]=v[i]+s[i-1];
    int b=1;
    int e=k;
    int ok=1;
    int sol=0;
    if(ad>=v[k]*k-s[k]){
        ad=ad-v[k]*k+s[k];
        sol=v[k]+ad/k;
        g<<sol<<'\n';
    }
    else
        while(b!=e)
        {
            int m=(b+e)/2;
            if(v[m]*m-s[m]<=ad && v[m+1]*(m+1)-s[m+1]>ad)
            {
                g<<sol+v[m]<<'\n';
                return 0;
            }
            else
                if(v[m]*m-s[m-1]<ad)
                    b=m+1;
                else
                    e=m-1;
        }
    return 0;
}