QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#632147#5115. Clone RanranGreen_Hand#AC ✓20ms1608kbC++20581b2024-10-12 12:32:502024-10-12 12:32:51

Judging History

你现在查看的是最新测评结果

  • [2024-10-12 12:32:51]
  • 评测
  • 测评结果:AC
  • 用时:20ms
  • 内存:1608kb
  • [2024-10-12 12:32:50]
  • 提交

answer

#include <cstdio>
#include <cstring>
using namespace std;

typedef long long ll;
int T; ll x,y,a,b,c,ans;

ll min(ll x,ll y) { return x < y ? x : y; }

void read(int &x)
{
	char c = getchar(); x = 0;
	while(c < '0' || c > '9') c = getchar();
	while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
}

int main()
{
	for(scanf("%d",&T);T--;)
	{
		scanf("%lld%lld%lld",&a,&b,&c),
		ans = 1ll * c * b, x = 1ll, y = 0ll;
		
		while(x < c)
			x *= 2, y += a, ans = min(ans,y + 1ll * b * ((c - 1) / x + 1));
		printf("%lld\n",ans);
	}
	
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 20ms
memory: 1540kb

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