Pagini recente » Cod sursa (job #1702287) | Profil Despina | Cod sursa (job #1870156) | Istoria paginii utilizator/streitferd_erika | Cod sursa (job #1072893)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
const int N=16001;
int v[N],k,n,c,l=1,p=1;
int maxim(int a,int b)
{
if(a>b)
return a;
return b;
}
int cautbin(int x)
{
/*int pas = 1<<14,sum=0, i=p-1;
while(pas!=0)
{
if(i+pas<=n)
sum+=v[i+pas];
if(i+pas<=n&&(sum<=x))
{
i=pas;
//out << i<<endl;
}
pas/=2;
}
*/
int i,sum=0;
for(i=p;i<=n;i++)
{
sum+=v[i];
if(sum>=c)
{
break;
}
}
c = maxim(sum,c);
return i;
}
int main()
{
in >> n;
in >> k;
for(int i=1;i<=n;i++)
in>>v[i];
for(int i=1;i<=n;i++)
{
c = maxim(v[i], c);
}
while(l<=k)
{
int x = cautbin(c);
if(x!=n)
{
l++;
}
p=x+1;
}
out << c;
//-----------
in.close();
out.close();
return 0;
}