Pagini recente » Cod sursa (job #1684074) | Cod sursa (job #1381382) | Cod sursa (job #34030) | Cod sursa (job #587386) | Cod sursa (job #2910853)
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <stack>
#include <map>
#include <cstring>
#include <climits>
#include <unordered_map>
#define NMAX 100003
using namespace std;
//Simularea efectiva a gruparilor
//Complexitate O(n)
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int v[NMAX], n, k;
long long int sum = 0;
int main() {
fin >> k >> n;
for (int i = 1; i <= n; i++)
{
int x;
fin >> x;
if (i <= n - k)
{
sum += x;
}
else {
v[i - n + k] = x;
}
}
for (int i = 2; i <= k; i++)
{
int trans = i - 1;
int difer = v[i] - v[i - 1];
//vreau sa aduc secventa 1, 2 .. i la v[i]
if (sum >= trans * difer)
{
sum -= trans * difer;
}
else {
//nu pot sa aduc toate elementele la v[i]
long long int posib = sum / trans;
fout << v[i - 1] + posib;
return 0;
}
}
//mi-a mai ramas sum de distribuit la toti egal
long long int posib = sum / k;//sa le dau tuturor egal
fout << v[k] + posib;
return 0;
}