그냥 문제 조건대로 풀면 된다.
단 정수형이 아닌 long long 으로 풀어야 한다.
#include<iostream>
#include<climits>
using namespace std;
int main(int argc, char** argv)
{
int test_case;
int T;
cin >> T;
for (test_case = 1; test_case <= T; ++test_case)
{
int N, A, B; cin >> N >> A >> B;
long long out = LONG_MAX;
long long temp;
for (long long R = 1; R * R <= N; R++)
{
long long C = N / R;
for (long long j = 1; j <= C; j++)
{
temp = (A * abs(R - j)) + (B * (N - (R * j)));
if (temp < out)
out = temp;
}
}
cout << '#' << test_case << ' ' << out << '\n';
}
return 0;
}
'Coding_Test 연습 > SWEA' 카테고리의 다른 글
[SWEA] (C++) D3 5642 합 (0) | 2022.04.09 |
---|---|
[SWEA] (C++) D3 1289 원재의 메모리 복구하기 (0) | 2022.04.08 |
[SWEA] (C++) D3 1493 수의 새로운 연산 (0) | 2022.04.08 |
[SWEA] (C++) D3 1860 진기의 최고급 붕어빵 (0) | 2022.04.08 |
[SWEA] (C++) D3 1873 상호의 배틀필드 (0) | 2022.04.08 |