Cod sursa(job #1701550)

Utilizator Bodo171Bogdan Pop Bodo171 Data 13 mai 2016 14:12:33
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <iostream>
#include<fstream>
#include<climits>
using namespace std;
int p,u,m,i,v[16005],n,k;
bool check()
{
    int trans=1,sum=0;
    for(i=1;i<=n;i++)
    {
        if(v[i]>m) return 0;
        if(sum+v[i]>m) {trans++;sum=v[i];}
        else sum+=v[i];
        if(trans>k) return 0;
    }
    return 1;
}
int main()
{
    ifstream f("transport.in");
    ofstream g("transport.out");
    p=0;u=INT_MAX;
    f>>n>>k;
    for(i=1;i<=n;i++) f>>v[i];
    while(u-p>1)
    {
        m=(p+u)/2;
        if(check()) u=m;
        else p=m;
    }
    g<<u;
    return 0;
}