Pagini recente » Cod sursa (job #1072791) | Cod sursa (job #320249) | Cod sursa (job #2435252) | Cod sursa (job #155278) | Cod sursa (job #1072899)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
const int N=16001;
int v[N],k,n,c,p=1,x;
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=0,sum=0;
for(i=p;i<n;i++)
{
sum+=v[i];
if(sum>=c)
{
break;
}
}
//out <<p<<i<<endl;
c = maxim(sum,c);
return i;
}
int main()
{
int sum;
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);
}
for(int i=1;i<k;i++)
{
x = cautbin(c);
p=x+1;
}
if(p!=n)
{
sum = 0;
for(int i=p;i<=n;i++)
sum+=v[i];
c = maxim(sum,c);
}
out << c;
//-----------
in.close();
out.close();
return 0;
}