Cod sursa(job #1527342)

Utilizator ManDark97Melinte Tudor-Matei ManDark97 Data 17 noiembrie 2015 23:45:10
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int v[16000],s,mx,i,k,n,K;

int test(int K)
{
    int i,S=0,T=0;
    for(i=0; i<n; i++)
    {
        if(v[i]>K)
            return K+1;
        S+=v[i];
        if(S>K)
            T++,S=v[i];

    }
    return T+1;

}
void manevrabinara(int st,int dr)
{
    int mij=(st+dr)/2,tst=test(mij);
    cout<<st<<" "<<dr<<" "<<tst<<" "<<mij<<endl;
    if(st>dr)return ;
    //if(tst==k)        return mij;
   // if(tst<k)return manevrabinara(st,mij-1);
    if(tst>k)
        manevrabinara(mij+1,dr);
    else
    {
        K=mij;
        manevrabinara(st,mij-1);
    }

}
int main()
{
    in>>n>>k;
    mx=0,s=0;
    for(i=0; i<n; i++)
    {
        in>>v[i];
        if(v[i]>mx)
            mx=v[i];
        s+=v[i];
    }
    // cout<<mx<<" "<<s<<endl;
     cout<<test(3)<<endl;
     manevrabinara(mx,s);
     out<<K;
//cout<<test(8);



    return 0;
}