Cod sursa(job #2026026)

Utilizator VarticeanNicolae Varticean Varticean Data 23 septembrie 2017 16:28:57
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,k,a[16009], cmax;

void read()
{
    in >> n >> k;
    for( int i=1; i<=n; i++)
        in >> a[i] ;

}
int ture( int c )
{
   int tr = 1, one =0;
   for(int i=1; i<=n; i++)
   {
       one +=a[i];
   if ( one > c )
     {
       tr++ ;
       one = a[i];
     }
   }
   return tr;
}

int caut( int st, int dr, int x)
{
    int mid, save = 0;
    while ( st <= dr )
    {
        mid = ( st+dr ) /2;
        if ( x < ture(mid) ) st = mid + 1; else dr = mid - 1;
        if ( x >= ture(mid) ) save = mid;
    }
    return save;
}

int main()
{
     read();
    out << caut(1,16000*16000,k);

    return 0;
}