Cod sursa(job #3247433)

Utilizator rarest@yahoo.comtorcea rares [email protected] Data 7 octombrie 2024 18:54:10
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,k,sum=0;
int v[16005];

int main()
{
    f>>n>>k;
    int i,j;
    int maxx=0;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
        sum+=v[i];
        if(maxx<=v[i])
            maxx=v[i];
    }
    int st=maxx,dr=sum,mij;
    bool ok;
    int minn=1e9;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        ok=false;
        int s=0,part=1;
        for(i=1;i<=n;i++)
            if(s+v[i]<=mij)
                s=s+v[i];
            else
            {
                part++;
                s=0;
                i--;
            }

        if(part<=k)
        {
            if(minn>=mij)
                minn=mij;
            dr=mij-1;
        }
        else
            st=mij+1;
    }
    g<<minn;
    return 0;
}