Cod sursa(job #2274503)

Utilizator BovisioNitica Ionut Bogdan Bovisio Data 1 noiembrie 2018 22:02:52
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <cstdio>

using namespace std;

int Sol(int v[],int n,int k,int point)
{
    int trans = 0,sumPart = 0;
    for(int i=0;i<n;i++)
    {
        if(sumPart + v[i] >= point)
        {
            sumPart = v[i];
            trans++;
        }
        else
            sumPart += v[i];
        if(trans > k)
            return -1;
    }
    if(trans == k)
        return point;
    return -1;
}

int main()
{
    int n,k,suma=0,maxim=-1,v[100];
    FILE * f =fopen("transport.in","r");
    fscanf(f,"%i %i",&n,&k);
    for(int i=0;i<n;i++)
    {
        fscanf(f,"%i",&v[i]);
        suma += v[i];
        if(v[i] > maxim)
            maxim = v[i];
    }
    fclose(f);
    FILE * g = fopen("transport.out","w");
    for(int i=maxim;i<=suma;i++)
    {
        if(Sol(v,n,k,i) != -1)
        {
            fprintf(g,"%i",i);
            break;
        }
    }
    return 0;
}