Pagini recente » Cod sursa (job #1656512) | Cod sursa (job #394577) | Cod sursa (job #1125641) | Cod sursa (job #1379996) | Cod sursa (job #863661)
Cod sursa(job #863661)
#include <fstream>
#define nmax 100100
using namespace std;
int N,K,Sol,A[nmax];
bool Check(int Val) {
int i,Sum;
for(i=1,Sum=0;i<=N;i++)
Sum+=(A[i]<Val?A[i]:Val);
return (Sum>=Val*K);
}
int BinarySearch(int Max) {
int 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,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;
}