Cod sursa(job #1292741)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 14 decembrie 2014 18:44:30
Problema Grupuri Scor 76
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
using namespace std;
int n, i, k, ii, jj;
long long s , p, u, mid;
int v[100001];
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int main(){
	fin>> k >> n;
	for(i = 1; i <= n; i++){
		fin>> v[i];
		s += v[i];
	}
	p = 1;
	u = s / k;
	while(p <= u){
		mid = (p + u) / 2;
		ii = 1;
		jj = 1;
		for(i = 1; i <= n; i++){
			if(v[i] > mid){
				ii += mid;
				if(ii > mid){
					jj++;
					ii-= mid;
				}
			}
			else{
				ii += v[i];
				if(ii > mid){
					jj++;
					ii-= mid;
				}
			}
			if(jj > k){
				jj = k;
				ii = mid;
				break;
			}
		}
		if(jj == k && ii == mid){
			p = mid + 1;
		}
		else{
			u = mid - 1;
		}
	}
	fout<< u;
	return 0;
}