Cod sursa(job #3360466)

Utilizator MirceaRegeleCeapaMircea Gheorghe MirceaRegeleCeapa Data 14 iulie 2026 12:10:19
Problema Transport Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#define NMAX 16000
#define KMAX 16000
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,v[NMAX];
bool isvalsize(int cap){
    int transp,dim,i;
    transp=1;
    dim=cap;
    for(i=0;i<n && transp<=k;i++){
        if(dim>=v[i])
        dim-=v[i];
        else{
            transp++;
            dim=cap-v[i];
        }
    }
    return transp<=cap;
}
int binsearchsize(int maxi,int sum){
    int st,dr,mij;
    st=maxi-1;
    dr=sum;
    while(dr-st>1){
        mij=(st+dr)/2;
        if(isvalsize(mij))
        dr=mij;
        else
        st=mij;
    }
    return dr;
}
int main()
{
	int i,min,sum,ans,maxi;
	fin>>n>>k;
	maxi=sum=0;
	for(i=0;i<n;i++){
		fin>>v[i];
		sum+=v[i];
		if(v[i]>maxi)
			maxi=v[i];
	}
	ans=binsearchsize(maxi,sum);
	fout<<ans;
}