Cod sursa(job #1148123)

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

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

int n,k;
int a[16001];


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