Cod sursa(job #1435964)

Utilizator TimoteiCopaciu Timotei Timotei Data 14 mai 2015 20:42:46
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include<fstream>

using namespace std;
int n,ture,sMom,kMom,mx,limS,limD,mij,sumMax,v[16005];
int main()
{
  ifstream f("transport.in");
  ofstream g("transport.out");
  f>>n>>ture;
  for(int i=1;i<=n;i++)
  {
      f>>v[i];
      if(v[i]>mx)mx=v[i];
      sumMax+=v[i];
  }
    limS=mx-1;
    limD=sumMax+1;
    while(limD-limS!=1)
    {
        mij=limS+(limD-limS)/2;
        sMom=0;
        kMom=0;
        for(int i=1;i<=n;i++)
        {
            sMom+=v[i];
            if(sMom>mij)
            {
                kMom++;
                sMom=v[i];

            }
 if(i==n)kMom++;

        }
        if(kMom<=ture)limD=mij;
        else limS=mij;
    }
        if(kMom==ture)g<<mij;
        else {
        sMom=0;
        kMom=0;
        for(int i=1;i<=n;i++)
        {
            sMom+=v[i];
            if(sMom>mij-1)
            {
                kMom++;
                sMom=v[i];

            }
        if(i==n)kMom++;

        }


        if(kMom==ture)g<<mij-1;
        else g<<++mij;
      }

  return 0;
}