Pagini recente » Monitorul de evaluare | Rating Radu Cosma (radu_cosma) | Cod sursa (job #573302) | Cod sursa (job #2054175) | Cod sursa (job #3287075)
#include <fstream>
using namespace std;
int N,K,v[16005],l=0,r=16005,sol;
bool check(int m)
{
long long sum=0,tr=0;
for(int i=0;i<N;i++)
{
if(sum+v[i]>m)
{
sum=v[i];
tr++;
}
else sum+=v[i];
if(tr>K || sum>m)
return 0;
}
if(tr+1>K)
{
return 0;
}
return 1;
}
int main()
{
ifstream cin("transport.in");
ofstream cout("transport.out");
cin>>N>>K;
for(int i=0;i<N;i++)
{
cin>>v[i];
}
while(l<=r)
{
int m=(l+r)/2;
bool ok=check(m);
if(ok==0)
{
l=m+1;
}
else{
r=m-1;
sol=m;
}
}
cout<<sol;
return 0;
}
#include <fstream>
using namespace std;
int N,K,v[16005],l=0,r=16005,sol;
bool check(int m)
{
long long sum=0,tr=0;
for(int i=0;i<N;i++)
{
if(sum+v[i]>m)
{
sum=v[i];
tr++;
}
else sum+=v[i];
if(tr>K || sum>m)
return 0;
}
if(tr+1>K)
{
return 0;
}
return 1;
}
int main()
{
ifstream cin("transport.in");
ofstream cout("transport.out");
cin>>N>>K;
for(int i=0;i<N;i++)
{
cin>>v[i];
}
while(l<=r)
{
int m=(l+r)/2;
bool ok=check(m);
if(ok==0)
{
l=m+1;
}
else{
r=m-1;
sol=m;
}
}
cout<<sol;
return 0;
}