Mai intai trebuie sa te autentifici.
Cod sursa(job #2528438)
| Utilizator | Data | 21 ianuarie 2020 21:10:48 | |
|---|---|---|---|
| Problema | Transport | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.96 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[16000];
int main()
{
int n,k,mini=16001,s,i,volum,maxx=0,cpvolum,incarcari;
fin >> n >> k;
s=0;
for(i=0;i<n;i++)
{
fin >> v[i];
s+=v[i];
if(maxx<v[i])
maxx=v[i];
}
s=(s+k-1)/k;
if(maxx>s)
volum=maxx;
else
volum=s;
incarcari=k+1;
mini=0;
cpvolum=volum;
while(incarcari>k)
{
volum+=mini;
cpvolum=volum;
incarcari=1;
mini=16001;
for(i=0;i<n;i++)
{
if(volum<v[i])
{
if(mini>v[i]-volum)
mini=v[i]-volum;
volum=cpvolum;
incarcari++;
}
volum-=v[i];
}
volum=cpvolum;
}
fout << volum;
return 0;
}
