Cod sursa(job #2309817)

Utilizator EdgeLordXDOvidiuPita EdgeLordXD Data 29 decembrie 2018 20:36:12
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<bits/stdc++.h>
#define ll long long
#define f first
#define s second
#define N 16001
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int a[N],n;
ll cacat(int c){
    int s=0,j=1,i;
    for(i=1; i<=n; ++i){
        if(s+a[i]>c)
            ++j, s=0;
        s+=a[i];
    }
    return j;
}
int main(){
    int k,pas=1<<30,r=0,m=0,i;
    in>>n>>k;
    for(i=1; i<=n; ++i)
        in>>a[i], m=max(m,a[i]);
    while(pas){
        if(cacat(r+pas)>k || r+pas<m)
            r+=pas;
        pas/=2;
    }
    out<<r+1;
    return 0;
}