Cod sursa(job #1037323)

Utilizator geo.cristinaOana Georgiana-Cristina geo.cristina Data 20 noiembrie 2013 00:32:43
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("transport.in");


int n,i,a[16001],k,st=0,dr=256000000,cant,mij,drum;

int main()
{
    f>>n;
    f>>k;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
        if(a[i]>st)
          st=a[i];
    }
    f.close();
    while(st<=dr)
    {
        cant=0;
        drum=1;
        mij=(st+dr)/2;
        for(i=1;i<=n;i++)
          {
              if(cant+a[i]<=mij)
                 cant=cant+a[i];
              else
              {
                cant=a[i];
                drum++;
              }
          }
        if(drum>k)
          st=mij+1;
        else
          dr=mij-1;
    }
    ofstream g("transport.out");
    g<<st;
    g.close();
    return 0;
}