Mai intai trebuie sa te autentifici.
Cod sursa(job #2739780)
| Utilizator | Data | 9 aprilie 2021 22:31:58 | |
|---|---|---|---|
| Problema | Transport | Scor | 90 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.82 kb |
#include <iostream>
#include <fstream>
using namespace std;
string file = "transport";
ifstream fin( file + ".in" );
ofstream fout( file + ".out" );
int n, k, v[16005],x;
inline bool capacitate( long long val ){
long long s = 0, nr = 1;
for( int i = 1; i < n; ++i ){
s+=v[i];
if( s > val )
return 0;
if( s + v[i+1] > val ){
s = 0;
nr++;
}
}
if(nr <= k)
return true;
return false;
}
inline void citire(){
fin>>n>>k;
for( int i = 1; i <= n; ++i )
fin>>v[i];
}
int main(){
citire();
long long st = 1;
long long dr = 16000*16000;
while( st <= dr ){
long long mid = (st + dr)/2;
if(capacitate(mid))
dr = mid - 1;
else
st = mid + 1;
}
fout<<st;
return 0;
}
