Pagini recente » Cod sursa (job #2232676) | Cod sursa (job #1657230) | Cod sursa (job #1933842) | Cod sursa (job #2771106) | Cod sursa (job #863675)
Cod sursa(job #863675)
#include <fstream>
#define nmax 100100
using namespace std;
int N,K,A[nmax];
long long Sol;
bool Check(long long Val) {
int i;
long long Sum;
for(i=1,Sum=0;i<=N;i++)
Sum+=(A[i]<Val?A[i]:Val);
return (Sum>=Val*K);
}
long long BinarySearch(long long Max) {
long long i,step;
for(step=1;step<Max;step<<=1);
for(i=0;step;step>>=1)
if(i+step<=Max && Check(i+step))
i+=step;
return i;
}
void solve() {
int i;
long long Sum;
for(i=1,Sum=0;i<=N;i++)
Sum+=A[i];
Sol=BinarySearch(Sum/K);
}
void read() {
ifstream in("grupuri.in");
in>>K>>N;
for(int i=1;i<=N;i++)
in>>A[i];
in.close();
}
void write() {
ofstream out("grupuri.out");
out<<Sol<<'\n';
out.close();
}
int main() {
read();
solve();
write();
return 0;
}