개발자 톡
커뮤니티 톡
자유 주제
코딩 테스트 세트 문제 틀린 부분 확인 부탁드립니다!
- 등록일
- 2022-11-14 17:53:46
- 조회수
- 661
- 작성자
- rhkr9080
강의자료 보고 C++로 짜보았는데 오류가 나옵니다
혹시 틀린 부분 있으면 지적 부탁드립니다!
#include
#include
using namespace std;
vector C;
vector D;
int N, T;
long long int pow(long long int num, int power)
{
long long int answer = 1;
for (int i = 0; i < power; i++)
{
answer *= num;
}
return answer;
}
void CLEAR()
{
C.clear();
D.clear();
}
void INPUT()
{
for (int i = 1; i <= 2 * N - 1; i++)
{
int num;
cin >> num;
if (i & 1 == 1)
C.push_back(num);
else
D.push_back(num);
}
}
int check(long long int testNum)
{
long long now = C[0];
for (int i = 0; i < N-1 ; i++)
{
if (now >= testNum)
now = C[i + 1] + D[i];
else if (now + D[i] >= testNum)
now = C[i + 1] + (now + D[i] - testNum);
else
return 0;
}
if (now >= testNum)
return 1;
else
return 0;
}
long long int bSearch(long long int start, long long int end)
{
if (start == end)
return start;
long long int middle = (start + end + 1) / 2;
if (check(middle))
return bSearch(middle, end);
else
return bSearch(start, middle-1);
}
int main()
{
cin >> N >> T;
for (int tc = 1; tc <= T; ++tc)
{
CLEAR();
INPUT();
cout << bSearch(0, 2*pow(10, 12)) << "\n";
}
return (0);
}
#코딩_테스트_세트
#c++