Pagini recente » Istoria paginii runda/simulare-cartita-04 | Cod sursa (job #2439795) | Cod sursa (job #2471300) | Cod sursa (job #2499162) | Cod sursa (job #1885191)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,i,v[16001],cs=0,cd=0,mij,rez,suma=0,contor=0;
f>>n>>k;
for(i=1;i<=n;i++){
f>>v[i];
if(cs<v[i])cs=v[i];
cd+=v[i];
}
while(cs!=cd){
mij=(cs+cd)/2;
contor=0;
cout<<cs<<' '<<cd<<' '<<mij<<'\n';
for(i=1;i<=n && contor<=k;i++){
while(suma+v[i]<=mij){
suma+=v[i];
i++;
}
i--;
contor++;
cout<<contor<<": "<<suma<<'\n';
suma=0;
}
if(contor<=k){
rez=mij;
cd=mij;
}
else cs=mij+1;
}
g<<rez<<'\n';
f.close();
g.close();
return 0;
}