Pagini recente » Cod sursa (job #1344655) | Cod sursa (job #3222267) | Cod sursa (job #1503119) | Cod sursa (job #2294875) | Cod sursa (job #2793656)
#include <bits/stdc++.h>
using namespace std;
ifstream in("grupuri.in");
ofstream out("grupuri.out");
typedef long long ll;
const ll lim=1e5+4;
ll dp[lim];
ll v[lim];
ll n,k;
bool check(ll ind,ll val)
{
if(dp[ind]+v[ind]*(n-ind)>=val*k)
return true;
return false;
}
int main()
{
in>>k>>n;
for(ll i=1;i<=n;++i)
in>>v[i],
dp[i]=dp[i-1]+v[i];
if(check(n,v[n]))
{
/// pot cel putin v[n] grupuri
out<<(dp[n]/k)<<'\n';
return 0;
}
/// pot cel mult v[n] grupuri
ll ind=n-1,curr=v[n]-1;
while(!check(ind,curr))
{
--curr;
while(curr<v[ind])
--ind;
}
out<<curr<<'\n';
return 0;
}