Pagini recente » Cod sursa (job #701664) | Cod sursa (job #2786503) | Cod sursa (job #410150) | Cod sursa (job #2368614) | Cod sursa (job #1773028)
// solutie 1
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int v[16000],v1[16000],i,n,k,mx,s=0,s1=0,s2=0,x=0;
void findmx()
{
while(k)
{
for(i=x;i<=n-1;i++)
{
if(mx>=s1+v[i]) s1+=v[i];
else {x=i;k--; break; }
}
s2+=s1;
s1=0;
if(s2==s) k=0;
}
}
int main()
{
in>>n>>k;
for(i=0;i<=n-1;i++) { in>>v[i]; v1[i]=v[i]; }
sort(v1,v1+n);
mx=v1[n-1];
for(i=0;i<=n-1;i++) s+=v[i];
findmx();
while(s2<s) { mx++; k=3; s1=0; x=0; s2=0; findmx();}
out<<mx;
return 0;
}