Mai intai trebuie sa te autentifici.

Cod sursa(job #1324964)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 22 ianuarie 2015 23:02:58
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <cstdio>
#include <fstream>
#define nmax 100005
using namespace std;
FILE *f=fopen("grupuri.in","r");
FILE *g=fopen("grupuri.out","w");
int n,k,v[nmax];
long long s,st,dr,mijl,sol;

bool ok(int r)
{
    int i,j,x,y;
    x=0;y=0;
    for (i=n;i>=1;i--) {
                if (v[i]>=r) {
                        x++;
                } else {
                        y+=v[i];
                        if (y>=r) {
                            y-=r;
                            x++;
                        }
                }
    }
    if (x>=k) return true;
    return false;


}


int main()
{
    int i,j;
    fscanf(f,"%d %d",&k,&n);
    for (i=1;i<=n;i++) {
            fscanf(f,"%d",&v[i]);
            s+=v[i];
    }
    st=0;dr=s/k;
    while (st<=dr) {
            mijl=(st+dr)>>1;
            if (ok(mijl)==true) {
                    st=mijl+1;
                    sol=mijl;
            }
                else
                    dr=mijl-1;
    }
    fprintf(g,"%lld",sol);

    return 0;
}