Cod sursa(job #1037299)

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

using namespace std;

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

int n,i,*a,k,st=0,dr=265000000,cant,mij,drum;

int main()
{
    f>>n;
    f>>k;
    a=new int[n];
    for(i=1;i<=n;i++)
    {
        f>>a[i];
        if(a[i]>st)
          st=a[i];
    }
    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;
    }
    g<<mij;
    f.close();
    g.close();
    return 0;
}