Cod sursa(job #1148132)

Utilizator andreeadeacAndreea Ioana Deac andreeadeac Data 20 martie 2014 14:48:06
Problema Transport Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
using namespace std;

ifstream f("transport.in");
ofstream g("transport.out");

int n,k;
int a[16001];

int grupe(int x){
    int nr,st,j;
    nr=1;
    st=0;
    for(j=1;j<=n;j++){
        if(st+a[j]<=x)
            st +=a[j];
            else{
                st=a[j];
                nr++;
            }
        }
        if(nr>k)
            return 1;
        else
            return 0;
}

int main()
{
    int i,max=-1,s=0,cod=0,pas=1<<30;
    f>>n>>k;
    for(i=1;i<=n;i++){
        f>>a[i];
        if(a[i]>max)
            max=a[i];
        s += a[i];
    }
    if(k>=n)
        g<<max<<"\n";
    else{
        i=0;
        while( pas!=0){
            if(grupe(i+pas)==1)
                i +=pas;
            pas/=2;
        }
        g<<i+1<<"\n";
    }
    return 0;
}