Pagini recente » Cod sursa (job #682726) | Cod sursa (job #1799234) | Cod sursa (job #2044162) | Cod sursa (job #2802649) | Cod sursa (job #2274503)
#include <cstdio>
using namespace std;
int Sol(int v[],int n,int k,int point)
{
int trans = 0,sumPart = 0;
for(int i=0;i<n;i++)
{
if(sumPart + v[i] >= point)
{
sumPart = v[i];
trans++;
}
else
sumPart += v[i];
if(trans > k)
return -1;
}
if(trans == k)
return point;
return -1;
}
int main()
{
int n,k,suma=0,maxim=-1,v[100];
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;
}