https://softeer.ai/practice/info.do?idx=1&eid=1204
#include <iostream>
#include <vector>
using namespace std;
bool f(vector<int> &A, long long B, long long n) {
for (auto a : A) {
if (a < n) B -= (n - a) * (n - a);
if (B < 0) return false;
}
return true;
}
int main(void)
{
long long N, B;
cin >> N >> B;
vector<int> A(N);
for (int i = 0; i < N; ++i) cin >> A[i];
long long right = 2e9;
long long left = 1;
while (left < right) {
long long m = (left + right + 1) / 2;
if (f(A, B, m)) left = m;
else right = m - 1;
}
cout << right << '\n';
return 0;
}
'알고리즘 > softeer' 카테고리의 다른 글
Softeer / [인증평가(5차) 기출] 성적 평가 (0) | 2023.01.08 |
---|---|
Softeer / [인증평가(4차) 기출] 통근버스 출발 순서 검증하기 (0) | 2022.12.16 |
Softeer - 마이크로서버 (0) | 2022.03.27 |
Softeer - 플레이페어 암호 (0) | 2022.03.26 |
Softeer - 좌석관리 (0) | 2022.02.21 |