Cod sursa(job #245974)

Utilizator razvan_emPrecupas Razvan razvan_em Data 19 ianuarie 2009 16:51:54
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
using namespace std;
ofstream ofis("transport.out");
ifstream ifis("transport.in");

int main()
{
    int k,n,i,j,v[16032],nr;
    long mij,s,s1,sol;
    long max,c;
    ifis>>n>>k;
    s=0; max=0;
    for (i=1; i<=n; i++)
    {ifis>>v[i]; s+=v[i]; if (v[i]>max) max=v[i];}
    mij=(s+max)/2;
    while (s>max)
    {
          s1=0; nr=0; i=1;
          while (i<=n)
          {
                s1+=v[i]; 
                if (s1>mij) {s1=0; nr++;}
                else i++;
          }
          if (nr+1<=k) {s=mij; sol=mij;}
          else max=mij+1;
          mij=(s+max)/2;
    }
    ofis<<sol;
    return 0;
}