Cod sursa(job #2052204)

Utilizator dragos.galeteanu2001Dragos Iulian dragos.galeteanu2001 Data 30 octombrie 2017 10:53:30
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int main()
{
    int N, K, v[6], i, j=0, k=1;
    long dr=0, st=0, mijloc=0, S=0, c=0;
    f>>N>>K;
    for (i=0; i<N; i++) {
            f>>v[i];
            if (v[i]>st) st=v[i];
            dr+=v[i]; }
    while (st<=dr)
    { mijloc=int((st+dr)/2); k=1; j=0;
    do {
    for (i=j, S=0; i<N && S<=mijloc; i++) S+=v[i];
    if (S>mijloc) { j=i-1; k++; }
    else break;
    } while (k<=K);
    if (k>K) st=mijloc+1;
    if (k==K) { c=mijloc; dr=mijloc-1; }
    if (k<K) dr=mijloc-1;}
    g<<c;
    f.close();
    g.close();
    return 0; }