Cod sursa(job #1028098)

Utilizator adrian.apostu31Adrian adrian.apostu31 Data 13 noiembrie 2013 17:22:45
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[16000];
//n - nr saltele k - nr drumuri cerut
int transport(int k, int rez){
	int t=0;
	for(int i=1; i<=n; ++i){
		if(t>rez) k--;
		else t+=v[i];
	}
	return k;
}
int cauta (int x,int a,int b)
{
 int m;
 if (a<=b)
 {
  m=(a+b)/2;
  if (v[m]==x) return m;
  else
   if (v[m]>x) cauta(x,a,m-1);
   else cauta(x,m+1,b);
 }
 else return 0;
}
int main(){
	f>>n>>k;
	int maxim=0,st=0;
	for(int i=1; i<=n; ++i){
		f>>v[i];
		if(v[i]>maxim) maxim = v[i];
		st+=v[i];
	}
	if(transport(k,maxim)) {
		g<<maxim+1;
		return 0;
	}
	else for(int i=maxim+1; i<=st; i++){
		if(transport(k,i)) { 
			g<<maxim+1;
			return 0;
		}
	}
}