Pagini recente » Cod sursa (job #1846132) | Cod sursa (job #1121466) | Cod sursa (job #1929264) | Cod sursa (job #2528960) | Cod sursa (job #1527296)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int v[16001],n,k;
int test(int Max)
{
int S=0,i,ck=0;
for(i=1; i<=n; i++)
{
if(S+v[i]<=Max) S+=v[i];
else
{
S=v[i];
ck++;
}
}
if(ck<k) return 1;
else return 0;
}
int main()
{
int i,Max=0,Min,minv,t=0,r,r1;
f>>n>>k;
for(i=1; i<=n; i++)
{
f>>v[i];
if(v[i]>Max) Max=v[i];
}
Min=16001;
while(t==0)
{
r1=0;
while(r1<=r) t=test(Max+r1++);
if(t!=1)
{minv=16001; r=0;
for(i=1;i<=n;i++)
if(v[i]<minv && v[i]>Min) minv=v[i];
for(i=1;i<=n;i++) if(v[i]==minv) r++;
Min=minv;
Max+=Min;}
}
g<<Max-1;
return 0;
}