Cod sursa(job #2344570)

Utilizator ivan.tudorIvan Tudor ivan.tudor Data 15 februarie 2019 11:30:56
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include<cstdio>

using namespace std;
const int N=100005;
int v[N];
int n,k;
bool check(long long nrgr){
  long long ind=0;
  int posingr=1;
  for(int i=1;i<=n && posingr<=k;i++){
	ind+=min(1LL*v[i],nrgr);
	if(ind>=nrgr){
	  posingr++;
	  ind-=nrgr;
	}
  }
  if(posingr==k+1)
	return true;
  return false;
}
long long cb(){
  long long pas=0,p2=1LL<<40;
  while(p2){
	if(check(pas+p2)){
	  pas+=p2;
	}
	p2/=2;
  }
  return pas;
}
int main()
{
    FILE*fin,*fout;
    fin=fopen("grupuri.in","r");
    fout=fopen("grupuri.out","w");
    fscanf(fin,"%d%d",&k,&n);
    for(int i=1;i<=n;i++){
	  fscanf(fin,"%d",&v[i]);
    }
    fprintf(fout,"%lld",cb());
    return 0;
}