QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#810188#5115. Clone RanranSGColinAC ✓19ms3816kbC++20731b2024-12-11 20:16:412024-12-11 20:16:46

Judging History

This is the latest submission verdict.

  • [2024-12-11 20:16:46]
  • Judged
  • Verdict: AC
  • Time: 19ms
  • Memory: 3816kb
  • [2024-12-11 20:16:41]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

inline int rd() {
	int x = 0;
	bool f = 0;
	char c = getchar();
	for (; !isdigit(c); c = getchar()) f |= (c == '-');
	for (; isdigit(c); c = getchar()) x = x * 10 + (c ^ 48);
	return f ? -x : x;
}

template<typename T>
inline bool getmax(T &a, T b) {return a < b ? (a = b, true) : false;}
template<typename T>
inline bool getmin(T &a, T b) {return a > b ? (a = b, true) : false;}

inline void work() {
	ll a = rd(), b = rd(), c = rd();
	ll ans = 9e18;
	for (int i = 0; i <= 30; ++i) 
		ans = min(ans, i * a + (c + (1 << i) - 1) / (1 << i) * b);
	printf("%lld\n", ans);
}

int main() {
	for (int t = rd(); t; --t) work();
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3816kb

input:

5
1 1 1
2 3 3
9 9 9
3 26 47
1064 822 1048576

output:

1
7
45
44
21860

result:

ok 5 number(s): "1 7 45 44 21860"

Test #2:

score: 0
Accepted
time: 19ms
memory: 3760kb

input:

99500
1000000000 1000000000 1000000000
1000000000 1000000000 999999999
1000000000 1000000000 999999998
1000000000 1000000000 999999997
1000000000 1000000000 999999996
1000000000 1000000000 999999995
1000000000 1000000000 999999994
1000000000 1000000000 999999993
1000000000 1000000000 999999992
10000...

output:

31000000000
31000000000
31000000000
31000000000
31000000000
31000000000
31000000000
31000000000
31000000000
31000000000
30999999998
30999999998
30999999998
30999999998
30999999998
30999999998
30999999998
30999999998
30999999998
30999999998
30999999996
30999999996
30999999996
30999999996
30999999996
...

result:

ok 99500 numbers