Pagini recente » Cod sursa (job #995157) | Cod sursa (job #311693) | Cod sursa (job #2330924) | Cod sursa (job #544705) | Cod sursa (job #2343048)
#include <fstream>
using namespace std;
ifstream fin( "grupuri.in" );
ofstream fout( "grupuri.out" );
const int NMAX = 100004;
int N, K;
int a[NMAX];
int dp[NMAX];
void Read()
{
fin >> K >> N;
for( int i = 1; i <= N; ++i )
fin >> a[i];
fin.close();
}
void Do()
{
long long sum = 0;
for( int i = 1; i <= N - K; ++i )
sum += 1LL * a[i];
int aux = N - K + 1;
int nr_g;
dp[aux] = 0;
nr_g = a[aux];
for( int i = aux + 1; i <= N; ++i )
{
dp[i] = ( a[i] - a[i - 1] ) * ( i - aux );
if( sum >= dp[i] )
{
nr_g = a[i];
sum -= dp[i];
}
else
{
nr_g += sum / ( i - aux );
sum = 0;
break;
}
}
if( sum > 0 ) nr_g += sum / K;
fout << nr_g << '\n';
//for( int i = 1; i <= N; ++i )
// fout << dp[i] << ' ';
}
int main()
{
Read();
Do();
return 0;
}