Pagini recente » Cod sursa (job #2914970) | Cod sursa (job #1446756) | Cod sursa (job #3041717) | Cod sursa (job #2386898) | Cod sursa (job #2274535)
#include <cstdio>
using namespace std;
int Sol(int v[],int n,int k,int point)
{
int trans = 1,cap = point;
for(int i=0;i<n;i++)
{
if(v[i] > cap)
{
cap = point;
trans++;
}
cap -= v[i];
if(trans > k)
return -1;
}
if(trans == k)
return point;
return -1;
}
int main()
{
int n,k,suma=0,maxim=-1,v[10000];
FILE * f =fopen("transport.in","r");
fscanf(f,"%i %i",&n,&k);
for(int i=0;i<n;i++)
{
fscanf(f,"%i",&v[i]);
suma += v[i];
if(v[i] > maxim)
maxim = v[i];
}
fclose(f);
FILE * g = fopen("transport.out","w");
for(int i=maxim;i<=suma;i++)
{
if(Sol(v,n,k,i) != -1)
{
fprintf(g,"%i",i);
break;
}
}
return 0;
}