Cod sursa(job #559996)

Utilizator alexamiu2008Miu Alexandra alexamiu2008 Data 18 martie 2011 11:41:04
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 #include<stdio.h>\par
FILE*fin,*fout;\par
long int n, k,k1,i,v[20000],min,t,u,p,m,nr,max,s;\par
 int main()\{\par
fin=fopen("transport.in","r");\par
fout=fopen("transport.out","w");\par
fscanf(fin,"%ld %ld",&n,&k);\par
for(i=1;i<=n;i++)\{\par
 fscanf(fin,"%ld ",&v[i]);\par
 k1=k1+v[i];\par
 if(v[i]>max)\{max=v[i];\}\par
\par
\par
\}\par
 u=max; p=k1;\par
 min=16001;\par
\par
 while(u<=p)\{\par
\tab m=(u+p)/2;    nr=0;\par
\tab for(i=1;i<=n; )\{\par
\tab    s=0;\par
\tab    while(s+v[i]<=m&&i<=n)\{\par
\tab    s+=v[i];i++;\par
\tab    \}\par
\tab    nr++;\par
\par
\par
\tab\}\par
\par
 if(nr>k)\{u=m+1;\}\par
 else\{\par
 if(nr<=k)\{\par
 min=m;p=m-1;\par
      \}\par
 \}\par
\par
\par
 \}\par
fprintf(fout,"%ld",min);\par
return 0;\par
\}\par
}