QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#632147 | #5115. Clone Ranran | Green_Hand# | AC ✓ | 20ms | 1608kb | C++20 | 581b | 2024-10-12 12:32:50 | 2024-10-12 12:32:51 |
Judging History
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;
}
详细
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