Cod sursa(job #1019708)

Utilizator leontinLeontin leontin Data 31 octombrie 2013 20:23:53
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
using namespace std;
 
ifstream f ("transport.in");
ofstream g("transport.out");
 
int n, k;
int v[16001];
 
int verifica(int cantitate)
{
  int transporturi = 1; int marfa = 0;
  for (int i = 1; i <= n; ++i)
    {
      if (marfa + v[i] <= cantitate)
    marfa += v[i];
      else
    {
      marfa = 0;
      --i;
      ++transporturi;
    }
    }
   
  if (transporturi <= k)
    return 1;
  return 0;
}



int main()
{
 f>>n>>k;
 
  int suma = 0;
  for (int i = 1; i <= n; ++i)
    {
      f >> v[i];
      suma += v[i];
 
      if (maxim < v[i])
    maxim = v[i];
    }
 suma=suma/3;
 while(verifica(suma)==0)
	 suma++;
 g<<suma; 
  return 0;
}