ACM----CodeForces - Buying Torches
You are playing a very popular game called Cubecraft. Initially, you have one stick and want to craft kk torches. One torch can be crafted using one stick and one coal.
Hopefully, you've met a very handsome wandering trader who has two trade offers:
- exchange 11 stick for xx sticks (you lose 11 stick and gain xx sticks).
- exchange yy sticks for 11 coal (you lose yy sticks and gain 11 coal).
During one trade, you can use only one of these two trade offers. You can use each trade offer any number of times you want to, in any order.
Your task is to find the minimum number of trades you need to craft at least kk torches. The answer always exists under the given constraints.
You have to answer tt independent test cases.
Input
The first line of the input contains one integer tt (1≤t≤2⋅1041≤t≤2⋅104) — the number of test cases. Then tt test cases follow.
The only line of the test case contains three integers xx, yy and kk (2≤x≤1092≤x≤109; 1≤y,k≤1091≤y,k≤109) — the number of sticks you can buy with one stick, the number of sticks required to buy one coal and the number of torches you need, respectively.
Output
For each test case, print the answer: the minimum number of trades you need to craft at least kk torches. The answer always exists under the given constraints
Example
5 2 1 5 42 13 24 12 11 12 1000000000 1000000000 1000000000 2 1000000000 1000000000
14 33 25 2000000003 1000000001999999999
You are playing a very popular game called Cubecraft. Initially, you have one stick and want to craft kk torches. One torch can be crafted using one stick and one coal.
Hopefully, you've met a very handsome wandering trader who has two trade offers:
- exchange 11 stick for xx sticks (you lose 11 stick and gain xx sticks).
- exchange yy sticks for 11 coal (you lose yy sticks and gain 11 coal).
During one trade, you can use only one of these two trade offers. You can use each trade offer any number of times you want to, in any order.
Your task is to find the minimum number of trades you need to craft at least kk torches. The answer always exists under the given constraints.
You have to answer tt independent test cases.
Input
The first line of the input contains one integer tt (1≤t≤2⋅1041≤t≤2⋅104) — the number of test cases. Then tt test cases follow.
The only line of the test case contains three integers xx, yy and kk (2≤x≤1092≤x≤109; 1≤y,k≤1091≤y,k≤109) — the number of sticks you can buy with one stick, the number of sticks required to buy one coal and the number of torches you need, respectively.
Output
For each test case, print the answer: the minimum number of trades you need to craft at least kk torches. The answer always exists under the given constraints.
Example
5 2 1 5 42 13 24 12 11 12 1000000000 1000000000 1000000000 2 1000000000 1000000000
14 33 25 2000000003 1000000001999999999
题目理解:
开局一根小木棍,然后你可以与商人做生意,用一根木棍换X根木棍也可以用Y根木棍换1块煤,做一个火把需要一个木棍和一块煤,现在需要做K个火把,问总共最少要和好心的商人做多少次交易(MC?)。
首先必须要拿到K个煤块,所以必须进行K次交换煤的交易(开局手上是没有煤块的)。然后我们需要从商人那交易到足够做火把和交易煤块用的木棍,即k + k * y - 1
个木棍(开局自带一个,所以减1),看看总共要交易多少次。
代码实现:
1 #include<stdio.h> 2 int main(){ 3 int n; 4 scanf("%d",&n); 5 while(n--){ 6 long long int x,y,k; 7 long long int num1; 8 scanf("%lld%lld%lld",&x,&y,&k); 9 num1=y*k+k-1; 10 long long int count = (num1 +(x - 1) - 1)/(x-1)+k; 11 printf("%lld\n",count); 12 } 13 }