Cod sursa(job #3330036)

Utilizator MagherinioMagher Stefan-Rares Magherinio Data 17 decembrie 2025 10:55:38
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <fstream>
#define DIM 16003
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[DIM];
int main()
{int n,k,Max,s;
fin>>n>>k;
Max=s=0;
    for (int i=1;i<=n;i++){
        fin>>v[i];
        s=s+v[i];
        if (v[i]>Max)
            Max=v[i];
    }
    ///caut binar capacitatea camionului pe intervalul [Max,s]
    int st=Max;
    int dr=s;
    int sol=0;
    while (st<=dr){
        int mid=(st+dr)/2;
        ///am fixat capacitatea in mid. det cate transporturi fac
        int nr=1;
        int sum=0;
        for (int i=1;i<=n;i++){
            if (sum+v[i]<=mid)
                sum=sum+v[i];
            else{
                nr++;
                sum=v[i];
            }
        }
        if (nr<=k)
        {sol=mid;
         dr=mid-1;
        }
        else
            st=mid+1;
    }
    fout<<sol;
}