Cod sursa(job #2257044)

Utilizator TincsesSzabo Zoltan Tincses Data 9 octombrie 2018 16:20:12
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

int t[16001]={0}, n, k;

int szim(int c)
{
    int i=0, j=0, d=0, e=k;
    while(j<n && e!=0)
    {

        if(d+t[j]<=c){
            d+=t[j];
        }
        else {d=0;e--;d+=t[j];}
        j++;
    }
    if(e>0)return 0;
    else return 1;
}

int binker(int a, int b, int x)
{
    if(a==b)return a;
    int c=(a+b)/2;
    if(szim(c))return binker(c+1,b,x);
    else return binker(a,c,x);
}

int main()
{
    int ossz=0, maxi=0;
    ifstream be("transport.in");
    ofstream ki("transport.out");
    be>>n>>k;
    for(int i=0;i<n;i++){
        be>>t[i];
        ossz+=t[i];
        if(t[i]>maxi)maxi=t[i];
    }
    ki<<binker(maxi, ossz, (maxi+ossz)/2);
}