Cod sursa(job #1249391)

Utilizator sebinechitasebi nechita sebinechita Data 26 octombrie 2014 22:22:48
Problema Grupuri Scor 74
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
#define MAX 100005

int a[MAX], s[MAX];
int n, k;

int ver(int val)
{
    int i, ck=k;
    for(i=n;i>=1;i--)
    {
        if(a[i]>=val)
            ck--;
        else
            break;
    }
    ck-=s[i]/val;
    return (ck<=0);
}

int main()
{
    int i;
    fin>>k>>n;
    for(i=1;i<=n;i++)
    {
        fin>>a[i];
        s[i]=s[i-1]+a[i];
    }
    int step;
    for(step=1;step<=s[n]/k;step<<=1);
    for(i=0;step;step>>=1)
    {
        if(i+step<=s[n]/k)
        {
            if(ver(i+step))
                i+=step;
        }
    }
    fout << i << "\n";

}