Cod sursa(job #284580)

Utilizator ktalyn93Catalin ktalyn93 Data 21 martie 2009 20:13:53
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>
int n,k,i,v[16001],s;
int cautbin(int st,int d)
{
    int m,rez;
    while(st<=d)
    {
              m=(st+d)/2;
	      int nr=0,c=0,t=0,i=1;
	      for(nr=1;nr<=k;nr++)
	     {

			  while(c+v[i]<=m && i<=n)
			  {
				c=c+v[i];
				i++;
			  }
			 t=t+c;
                	  c=0;

              }
	     if(t<s)
	       st=m+1;
	       else
	     {
	       d=m-1;
	       rez=m;
	     }
		}
  return rez;
}
int main()
{
    freopen("transport.in","r",stdin);
    freopen("transport.out","w",stdout);
    scanf("%d %d",&n,&k);
    for(i=1;i<=n;i++)
    {
                     scanf("%d",&v[i]);
                     s=s+v[i];
    }
    printf("%d",cautbin(1,s));
    return 0;
}