Cod sursa(job #2615171)

Utilizator eugen5092eugen barbulescu eugen5092 Data 13 mai 2020 19:30:29
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
using namespace std;

ifstream ci("transport.in");
ofstream cou("transport.out");

int st=1,dr=16005*16005,sol=1;
int v[17000];
int n,k,mx;

void citire()
{
	ci>>n>>k;
	for(int i=1; i<=n; i++)
	{
	    mx=max(mx,v[i]);
		ci>>v[i];
	}
}

int Ok(int mr)
{
	int s=0,cn=1,i;
	for(i=1; i<=n; i++)
	{
		if(s+v[i]>mr)
		{
			cn++;
			s=v[i];
		}else{
            s+=v[i];
		}
		//cout<<k<<" "<<cn<<" "<<s<<"\n";
	}
	return cn;

}

void rez()
{
	int mij,sol1=mx,sol=mx;
	st=mx;
	while(st<=dr)
	{
		mij=(st+dr)/2;

        if(Ok(mij)<=k){
            dr=mij-1;
            sol1=mij;
        }else{
            st=mij+1;
            sol=mij;

        }
	}

        cou<<sol1;

}

int main()
{
    citire();
    rez();

	return 0;
}