Cod sursa(job #2535275)

Utilizator catimincaMinca Ecaterina catiminca Data 31 ianuarie 2020 18:27:14
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<iostream>
#include<fstream>
using namespace std;
//ifstream f("transport.in");
//ofstream g("transport.out");
int main()
{
    int n,nr,a[16000],i,st=0,dr=0,sol=0;
	cin>>n>>nr;
	for(i=0;i<n;i++)
	{
		cin>>a[i];
		if(st<a[i])
            st=a[i];
            dr=dr+a[i];
	}
    while(st<=dr)
	{
		int mij=(st+dr)/2;
		int k=1,l=0;
		for(i=0;i<n;i++)
		{
			l=l+a[i];
			if(l>mij)
			{
				k++;
				l=a[i];
			}
			if(k>nr)
			{
				st=mij+1;
				break;
			}
		}
		if(k<=nr)
		{
			dr=mij-1;
			sol=mij;
		}
	}
	cout<<sol;
	return 0;
}