Cod sursa(job #1534963)

Utilizator iuliaotilia26Mustea Iulia-Otilia iuliaotilia26 Data 24 noiembrie 2015 08:55:50
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[16001],mini,stg,dr,sum;
int verificare(int mij,int k)
{
        int i=1,sum;
        while(i<=n && k>0)
        {
        sum=0;
        while(i<=n && sum<mij )
            {sum+=v[i];
            i++;
            }
        if(sum>mij)
            i--;
        k--;
        }
    if(i<=n)return 0;
    return 1;
}

int main()
{
    int mij,i;
    f>>n>>k;
    for(i=1;i<=n;i++)
        {
        f>>v[i];
        if(v[i]>stg)
            stg=v[i];
        sum+=v[i];
        }
    dr=sum;
    while(stg<sum)
        {
          mij=(stg+sum)/2;
         if(verificare(mij,k)==0)
            stg=mij+1;
         else
            {
            sum=mij;
            dr=mij;
            }
        }
    g<<dr;
    f.close();
    g.close();
    return 0;
}