Cod sursa(job #2275765)

Utilizator AlexHunterAlex Hunter AlexHunter Data 3 noiembrie 2018 15:54:30
Problema Transport Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include <math.h>
#include <fstream>

using namespace std;

int main()
{
    int m = -1, sum = 0, v[16000], n, k, nr, s, su, ok = 0, i, j;
    float a;
    ifstream ifs("transport.in");
    ofstream ofs("transport.out");
    ifs >> n >> k;
    for ( i = 0; i != n; i++ ) {
        ifs >> v[i];
        if ( v[i] > m ) {
            m = v[i];
        }
        sum = sum + v[i];
    }
    a = sum / k;
    a = ceil(a);
    if ( a > m ) {
        nr = a;
    }
    else {
        nr = m;
    }
    while ( ok == 0 ) {
        s = 0;
        su = 0;
        i = 0;
        j = 0;
        while ( ( i != k ) && ( j != n ) ) {
            if ( s + v[j] > nr ) {
                s = v[j];
                i++;
                if ( i == k ) {
                    break;
                }
            }
            else {
                s = s + v[j];
            }
            su = su + v[j];
            j++;
        }
        if ( su == sum ) {
            ok = 1;
        }
        else {
            nr++;
        }
    }
    ofs << nr;
    return 0;
}