Cod sursa(job #1020685)

Utilizator vlad.florescu94FMI Florescu Vlad - Adrian vlad.florescu94 Data 2 noiembrie 2013 14:48:17
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[16001],suma=0,s,i,mic=1;
short test(int x)
{int nr=1,sum=0;
 for(i=0;i<n;i++)
   {sum=sum+v[i];
    if(sum>x)
      { nr++;
        sum=v[i];
      }
   }
 if(nr==k)
    return 1;
 if(nr>k)
    return 2;
 return 0;
}
void verif(int &s,int mini,int maxi)
{if(mini<=maxi)
   {s=(mini+maxi)/2;
    g<<"mini: "<<mini<<" maxi: "<<maxi<<" s: "<<s<<" test(s)= "<<test(s)<<'\n';
    if(test(s)==2)
      verif(s,s+1,maxi);
    if(test(s)==0||test(s)==1)
      verif(s,mini,s-1);
   }

}
int main()
{f>>n>>k;
 for(i=0;i<n;i++)
   {f>>v[i];suma=suma+v[i];mic=max(mic,v[i]);}
 g<<mic<<"bla"<<'\n';
 verif(s,mic,suma);
 g<<s;
 f.close();g.close();
 return 0;
}