Cod sursa(job #2331101)

Utilizator 53215343214Nejneriu Mihai 53215343214 Data 29 ianuarie 2019 10:38:39
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
int v[16001],n,k;
int verificare(int x)
{
    int i,aux,nr=0;
    aux=x;
 for (i=1;i<=n;i++)
 if (aux-v[i]<0) {nr++; aux=x;}
 else aux-=v[i];
 return nr;
}
int main()
{
    ifstream f("transport.in");
    ofstream g("transport.out");
    int maxi=0,s=0,i,st,dr,mij;
    f>>n>>k;
    for (i=1;i<=n;i++)
    {
     f>>v[i];
     if(v[i]>maxi) maxi=v[i];
     s=s+v[i];
    }
    st=maxi;
    dr=s;
    while (st<dr)
    {
        mij=(st+dr)/2;
        if (verificare(mij)==k) {st=dr+1; while(verificare(mij)==k) mij--;}
        else if(verificare(mij)<k) dr=mij-1; else st=mij+1;
    }
    while (verificare(mij)==k) mij--;
    g<<mij+1;}